분류 전체보기155 구조체를 배열로 만들면 메모리 저장 위치는 어디일까? C# 에서 "구조체(struct)는 스택에 저장된다" 는 말을 자주 들어봤을 것입니다. 그런데 배열은 "힙에 저장된다"고 합니다. 그렇다면 "구조체를 배열로 만들면 어디에 저장될까?" 하는 궁금증이 생깁니다.이 글은 바로 그 궁금증을 풀기 위해 정리한 내용입니다. 구조체는 기본적으로 스택에 저장다음처럼 지역 변수로 구조체를 선언하면, 이 변수는 스택(stack)에 저장됩니다:void MyMethod(){ MyStruct s = new MyStruct(); // 스택에 저장됨} 값 타입(struct, int, float, bool 등) 은 참조 타입(class)과 달리 스택 메모리에 저장되는 것이 일반적입니다. 배열은 힙에 저장 (new 없이도)C#에서 배열은 참조 타입입니다. 즉, 배열 자체는 무조.. 2025. 4. 22. 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. 이전 1 ··· 16 17 18 19 20 21 22 ··· 26 다음