728x90
✅ 왜 CoroutineRunner가 필요할까?여러 코루틴을 관리할 때 코드가 지저분해짐중단/시작/덮어쓰기 규칙을 정형화하고 싶을 때반복적인 Coroutine 핸들 관리 코드가 싫을 때✅ 기본 개념코루틴을 키(key)로 구분해서 관리하고특정 키에 새로운 코루틴을 덮어쓰기 하거나,전체 코루틴을 멈출 수 있음🚀 간단한 CoroutineRunner 만들기✅ 장점기능설명✅ 키 기반 코루틴 관리"PCR" 키, "Narration" 키 따로 관리 가능✅ 중복 방지같은 키는 자동으로 중지 후 덮어쓰기✅ 확장성 좋음RunAndWait(), 타임아웃, CancellationToken 등 추가 가능✅ 코드 깔끔함Coroutine 핸들 관리 필요 없음 1. 변수 선언[SerializeField] private Corout..
📌 기본적인 인스펙터 속성[Header("제목")] - 섹션 구분[Header("Experiment Process Settings")]public float DenaturationTemp = 94f;✔ 그룹별로 구분 가능[Space(n)] - 간격 추가[Space(10)] // 위 속성과 10픽셀 간격 추가public float AnnealingTemp = 65f;✔ 가독성을 위해 여백을 추가[Tooltip("설명")] - 마우스 오버 시 설명 표시[Tooltip("현재 실행 중인 실험 사이클입니다.")]public int CurrentCycle = 1;✔ 마우스를 올리면 설명 툴팁 표시 [Range(min, max)] - 슬라이더 UI 제공[Range(1, 50)]public int MaxCycle..
UI Plane 클릭 안되는 경우 위 그림에서 왼쪽 버튼은 클릭이 되는데 오른쪽은 클릭이 안되는 문제가 발생 두개다 같은 오브젝트에 복사만 했는데 문제가 발생같은 머티리얼을 사용하고있고 머티리얼을 회전해서 아이콘을 변경했는데 여기서 문제가 발생 회전의 방향을 z 축이 아닌 y축으로 회전해서 생긴 문제였음 z축으로 회전하니 문제없이 똑같이 동작
Cinemachine Camera와 Cinemachine Component의 차이점구분설명예시Cinemachine CameraVirtual Camera의 이름이 변경된 것으로, 카메라의 기본적인 속성을 담당하는 컴포넌트예요 [4]. Cinemachine ComponentCinemachine Camera 아래에 위치, 회전, 노이즈 등의 속성을 일대일로 지정할 수 있도록 기능을 담당하는 컴포넌트예요 [4].타겟을 주변으로 이동하면서 살펴볼 때는 Position Control을 Orbital Follow로, Rotation Control은 계속 타겟만 바라보도록 Hard Look At으로 설정 [6] Cinemachine Camera는 카메라의 기본적인 틀을 제공하고, Cinemachine Component..
📷 시네머신 3의 개선된 기능 소개유니티 6의 시네머신 3는 카메라 워킹 제작을 더욱 편리하게 하기 위해 새롭게 개편되었으며, 사용자 친화적인 인터페이스로 진입 장벽을 낮추었다. [1-1]Virtual Camera의 컴포넌트 이름이 Cinemachine Camera로 변경되었으며, 각 속성을 개별적으로 설정할 수 있도록 모듈화되었다. [1-4]🎥 시네머신3의 카메라 워킹 설정 방법Position Control을 Orbital Follow로 설정하면 주변을 탐색할 수 있게 된다. [2-1]Rotation Control은 Hard Look At으로 설정함으로써 항상 타겟을 바라보게 할 수 있다. [2-1]Orbital Follow는 마우스 입력이나 게임패드와 같은 회전 입력이 필요하므로, Input Ax..
에셋 번들 개념 설명에셋 번들은 유니티에서 프로젝트의 다양한 에셋을 묶어서 관리하는 방법이다.에셋은 유니티의 프로젝트 패널 내 에셋 폴더에 있는 모든 파일을 의미한다.번들은 '묶음'이라는 뜻으로, 여러 에셋을 규칙에 따라 정리한 것을 의미한다.에셋 번들을 빌드하면 전체 프로젝트의 용량을 줄일 수 있다.에셋 번들을 사용한 앱은 최초 실행 시 에셋 번들을 다운로드해야 한다. 에셋 번들의 필요성에셋 번들을 사용하지 않고 통째로 빌드할 경우, 용량이 커지고 수정 시 재설치가 필요하다.첫 번째 이유: 앱의 용량 제한을 지켜야 할 때, 에셋 번들을 사용하면 큰 게임도 업로드 가능하다.두 번째 이유: 수정 사항이 있을 때 에셋 번들만 다운로드하면 되므로 재설치가 필요 없다. 에셋 번들 구현 방법에셋 번들을 이해한 ..
🔍 프레임 디버거의 활용과 기능프레임 디버거는 한 프레임을 렌더링하는 드로우콜을 디버깅할 수 있는 도구이다.[1-1]사용자는 렌더링 과정에서 배칭의 상태를 확인하고, 수정 방향에 대한 힌트를 얻을 수 있다.[1-2]2022버전의 프레임 디버거는 게임창의 버그 모양 아이콘을 통해 쉽게 접근할 수 있다.[1-9]🎮 2D 게임에서 드로콜 이슈의 중요성드로콜은 3D 게임뿐만 아니라 2D 게임에서도 매우 중요하며, 특히 타워 디펜스 게임과 같이 요소가 많이 나오는 경우에 문제가 발생할 수 있다.[2-1]현재 테스트 중인 게임은 무적 상태로 설정되어 있으며, 이러한 설정에서 드로콜 부하가 발생하게 된다.[2-5]드로우콜의 수는 테스트에서 116개로 나타나며, 이로 인해 렌더링 비용이 증가하게 된다.[2-23]또..
이 영상에서는 싱글턴 패턴의 특징과 유니티에서의 활용에 대해 다룹니다. 이 패턴은 특정 객체의 유일무이한 인스턴스를 보장해주며, 게임 매니저와 UI 설정 등 다양한 분야에 적용될 수 있습니다. 하지만 모든 곳에 접근 가능하다는 점 때문에 안티 패턴으로 간주될 수 있는 단면도 있습니다. 특히 멀티스레드 환경에서는 코드 안전성과 캐시 최적화 문제로 인해 주의가 필요하며, 잘못 사용하면 복잡성과 디버깅 문제를 초래할 수 있습니다. 이러한 복잡성을 피하기 위해서는 상황에 맞게 신중하게 싱글턴을 사용해야 함을 강조합니다.핵심 용어싱글턴: 싱글턴은 단 하나의 객체만 만들어서 사용하는 디자인 패턴이에요. 마치 하나뿐인 대통령처럼, 프로그램 전체에서 딱 하나의 인스턴스만 존재해야 할 때 사용하죠. 예를 들...1. ?..
🖼️ 서버에서 이미지를 불러오는 방법 유니티에서 고화질 이미지를 500장 이상 사용할 경우, 직접 넣는 방식은 빌드 용량을 크게 증가시킨다.이미지를 서버에서 불러오는 방식은 빌드 용량을 줄이고, 이미지수정 시에도 다시 빌드할 필요가 없어 효율적이다.서버와의 상호작용을 통해 이미지를 구동하도록 하는 스크립트를 작성하면 실무에서 유용하게 활용할 수 있다. 🖼️ 이미지 연결 및 설정 과정 스크립트를 실행하고 업데이트는 불필요하므로 삭제하겠다고 언급된다.유니티엔진을 사용하여 필요한 이미지를 연결할 것이라고 설명한다.이미지를 더블랙 로로 연결하는 작업을 진행한다고 한다.연결을 완료한 후, 서버에서 이미지를 받아오기 위해 유니티의 네트워킹 기능을 사용할 것이라고 강조한다.이전 영상들에서 사용했던 코루틴을 반드..