전체 글142 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 ··· 14 15 16 17 18 19 20 ··· 24 다음