Unity 씬 파일에서 GameObject
에 m_Component
가 2개 이상 있는 경우는 일반적인 구조입니다. Unity의 GameObject
는 여러 개의 컴포넌트를 가질 수 있으며, 각 컴포넌트는 m_Component
리스트에 나열됩니다. 이 리스트는 컴포넌트가 GameObject
에 부착된 순서대로 배열됩니다.
YAML 파일에서 m_Component
의 역할
m_Component
항목은 GameObject
에 부착된 모든 컴포넌트를 나열합니다. 각 컴포넌트는 fileID
로 참조되며, 실제 컴포넌트의 정의는 YAML 파일의 다른 부분에 위치합니다.
-
예를 들어, 다음과 같이 구성된 YAML 파일이 있다고 합시다:
--- !u!1 &100000
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: "ExampleObject"
m_TagString: "Untagged"
m_Layer: 0
m_Components:
- component: {fileID: 200000}
- component: {fileID: 300000}
-
이 구조에서 m_Components
리스트에는 두 개의 컴포넌트가 포함되어 있으며, 각각 fileID
가 200000
과 300000
인 컴포넌트를 참조합니다.
각 컴포넌트의 정의 찾기
-
m_Component
리스트에 포함된 fileID
는 YAML 파일 내에서 컴포넌트의 정의를 참조합니다. 파일에서 fileID: 200000
과 fileID: 300000
을 검색하여 각 컴포넌트가 무엇인지 확인할 수 있습니다. 예를 들어:
--- !u!4 &200000
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_GameObject: {fileID: 100000}
m_LocalPosition: {x: 0, y: 1, z: 0}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalScale: {x: 1, y: 1, z: 1}
--- !u!23 &300000
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_GameObject: {fileID: 100000}
m_Enabled: 1
- 이 예시에서
fileID: 200000
은 Transform
컴포넌트를, fileID: 300000
은 MeshRenderer
컴포넌트를 의미합니다. 각 컴포넌트는 GameObject
에 부착된 상태이며, m_GameObject
필드를 통해 이 컴포넌트가 어느 GameObject
에 부착되어 있는지 알 수 있습니다.
Unity 에디터를 통한 확인
- Unity 에디터에서 해당
GameObject
를 선택하면 Inspector 창에서 해당 GameObject
에 부착된 모든 컴포넌트를 확인할 수 있습니다.
Transform
, MeshRenderer
, Collider
등 다양한 컴포넌트가 부착된 경우, 각각의 컴포넌트가 어떻게 구성되어 있는지와 설정된 값을 시각적으로 확인할 수 있습니다.
Unity YAML 파일에서 m_Component
가 여러 개 있는 것은 해당 GameObject
에 여러 컴포넌트가 부착되어 있음을 나타내며, 각 컴포넌트는 YAML 파일 내의 고유 fileID
를 통해 참조됩니다. Unity 에디터의 Inspector 창을 통해 이러한 컴포넌트를 시각적으로 확인하고, 파일 내에서 fileID
를 검색하여 컴포넌트의 구체적인 정의를 찾아볼 수 있습니다.