Unity22 Hierarchy 구조를 이용해 스크립트에서 제어하기 유니티에서는 오브젝트를 Inspector 창에서 일일이 등록해서 배열이나 리스트로 관리하는 경우가 많습니다. 하지만 이 방식은 관리도 번거롭고, 오브젝트가 많아지면 실수하기도 쉽습니다.좀 더 유연하고 효율적인 방법은 빈 오브젝트를 부모로 만들고, 자식 오브젝트들을 계층 구조로 정리한 뒤 스크립트에서 자동으로 접근하는 방식입니다. Transform을 기준으로 순환그런데 이때 중요한 점이 하나 있습니다. 자식을 순환하려면 GameObject 가 아닌 Transform 을 기준으로 순환해야 한다는 점입니다.왜냐하면, 유니티의 구조상 부모-자식 관계는 GameObject 가 아닌 Transform 이 관리하고 있기 때문입니다. * GameObject 클래스는 오브젝트의 이름, 태그, 컴포넌트 등 일반적인 정보를.. 2025. 4. 21. 유니티에서 SerializeField 란 무엇인가요? 유니티를 보다보면 SerializeField 라는 키워드를 종종 접하게 됩니다.또한 “이 변수는 직렬화되어야 인스펙터에 표시됩니다” 라는 설명도 흔히 들으실 수 있습니다.처음에는 생소하지만, 직렬화라는 개념은 의외로 단순하며 유니티를 이해하는 데 꼭 필요한 기본 요소입니다. 직렬화란?직렬화(Serialization) 란 데이터를 일렬로 쭉 줄 세우는 작업을 의미합니다.우리가 만든 클래스나 객체는 사람에게는 정돈된 구조로 보일 수 있지만, 컴퓨터나 파일 시스템, 네트워크에는 그대로 전달할 수 없습니다.그래서 객체 안의 데이터를 하나하나 꺼내어 연속된 형태로 변환하는 과정이 필요한데, 이것이 바로 직렬화입니다.이 과정을 통해 비로소 저장하거나 전송할 수 있는 형태가 됩니다. * 줄을 세우는 것 → 직렬화* .. 2025. 4. 20. Unity 에서 지체없이 Play Mode 로 진입하는 방법 Unity에서 Play Mode로 진입할 때마다 몇 초간 진행 바가 나타난 후 실행이 시작되는 경험을 해보신 적이 있을 것입니다. 이는 Unity가 매번 스크립트와 씬을 초기화하는 과정 때문입니다. 단순한 테스트를 반복하는 개발 과정에서는 이 대기 시간이 다소 번거롭게 느껴질 수 있습니다. 이러한 경우에는 Edit > Project Settings > Enter Play Mode Settings 항목에서 제공하는 "Reload Domain" 및 "Reload Scene" 옵션을 통해 실행 속도를 개선할 수 있습니다. 이 두 항목의 체크를 해제하면, 매번 Play Mode 진입 시 초기화 과정을 생략하고 즉시 실행이 가능합니다. 진행 바 없이 곧바로 실행되므로, 반복 테스트 시 매우 유용합니다. Rel.. 2025. 4. 14. Audio Clip 을 Dictionary 로 관리하기 : Serializable 과 List 활용 Unity 에서 여러 AudioClip 을 관리하는 다양한 방법들이 존재하지만, 이번 글에서는 AudioClip 을 key 기반으로 관리할 수 있도록 Dictionary를 활용하고, Unity Inspector 창에서 오디오 데이터를 등록할 수 있도록 Serializable 클래스와 List 를 함께 사용하는 방법에 대해 소개하겠습니다. System.Serializable먼저 아래와 같이 클래스를 정의할 때 자주 보게 되는 [System.Serializable] 속성부터 살펴보겠습니다.[System.Serializable]public class KeyAudioClip{ public string key; public AudioClip clip;} 이 속성은 Unity가 해당 클래스를 Inspe.. 2025. 4. 8. SceneManager.sceneLoaded 에 대해 Unity에는 SceneManager라는 전역 static 클래스가 존재합니다. 이 클래스는 씬 전환과 관련된 기능들을 담당하며, 그 중에서도 sceneLoaded라는 이벤트는 새로운 씬이 로드되었을 때 자동으로 호출되는 이벤트입니다.이벤트이기 때문에 += 연산자를 통해 간단히 원하는 메서드를 등록할 수 있으며, 이벤트가 발생하면 해당 메서드가 자동으로 호출됩니다. 언제 사용해야 할까?SceneManager.sceneLoaded 는 보통 다음과 같은 경우에 사용됩니다 * scene 전환 이후 특정 데이터를 다시 설정하거나 초기화해야 할 때* singleton 매니저가 scene 내 오브젝트를 다시 찾거나 데이터를 새로 준비할 필요가 있을 때* 매번 scene 이 바뀔 때마다 공통적인 작업을 자동으로 처.. 2025. 4. 5. Scene 전환 시, 오브젝트 연결이 끊어지는 이슈 해결 방법 Unity에서 작업하다 보면, Inspector에서 어떤 오브젝트를 직접 수동으로 끌어다가 연결해 두었는데, 씬을 바꾸고 돌아오면 그 연결이 Missing으로 표시되는 경우가 있습니다. 처음엔 버그처럼 느껴지지만, Unity 구조상 이건 아주 당연한 현상입니다. 왜 연결이 끊어질까?Inspector에서 연결한 오브젝트는 현재 씬 안에 존재하는 오브젝트입니다. 그런데 씬을 전환하면, 해당 씬 안에 있던 오브젝트들은 메모리에서 사라지고, 다음 씬의 새로운 오브젝트들로 바뀝니다.즉, 연결되어 있던 오브젝트가 씬 전환 시 사라지기 때문에 그 필드는 자동으로 Missing 상태가 됩니다. 그럼 다시 원래 씬으로 돌아오면 연결이 복구될까?안타깝게도 그렇지 않습니다. Unity는 Inspector 에서 손으로 연.. 2025. 4. 5. 이전 1 2 3 4 다음