Unity YAML 씬 파일 예제
이 문서는 Unity에서 사용되는 YAML 씬 파일의 구조와 기본적인 설정에 대한 간단한 예제를 제공합니다. YAML은 Unity의 다양한 데이터 구조를 직렬화(serialize)하는 데 유용한 포맷입니다. 아래 예제는 카메라와 큐브 오브젝트 각각 하나씩을 포함한 간단한 씬의 구성입니다.
YAML 씬 파일 구조
YAML 씬 파일은 다음과 같은 기본 구조를 가지고 있습니다.
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
---
!u!header
SerializedFile:
m_TargetPlatform: 4294967294
m_UserInformation:
--- !u!29 &1
Scene:
m_ObjectHideFlags: 0
m_PVSData:
m_QueryMode: 1
m_PVSObjectsArray: []
m_PVSPortalsArray: []
m_ViewCellSize: 1.000000
주요 구성 요소
구성 요소 | 설명 |
---|---|
%YAML 1.1 | YAML의 버전을 정의합니다. |
%TAG !u! | Unity가 태그를 정의하는 부분입니다. |
m_TargetPlatform | 타겟 플랫폼 정보를 정의합니다. |
Scene | 씬의 여러 속성을 정의합니다. |
RenderSettings | 렌더링 관련 설정을 정의합니다. |
GameManager | 게임 매니저 정보로, 씬의 전반적인 관리를 담당합니다. |
LightmapSettings | 조명 맵 설정을 포함하는 부분입니다. |
NavMeshSettings | 내비게이션 메쉬 관련 설정을 정의합니다. |
GameObject | 씬 내의 게임 오브젝트 정보를 정의합니다. |
Transform | 게임 오브젝트의 위치, 회전 및 척도를 설정하는 부분입니다. |
Camera | 카메라의 설정을 정의합니다. |
Renderer | 렌더링 관련 속성을 포함합니다. |
MeshFilter | 메쉬 필터 정보를 나열합니다. |
BoxCollider | 물리적 상호작용을 위한 박스 충돌체 설정을 정의합니다. |
AudioListener | 오디오 관련 설정을 정의하는 부분입니다. |
씬 내부 구성 예제
아래는 YAML 씬 파일에서 정의된 두 개의 게임 오브젝트(큐브와 카메라)의 예입니다.
--- !u!1 &6
GameObject:
m_ObjectHideFlags: 0
m_Name: Cube
m_Component:
- 4: {fileID: 8}
- 65: {fileID: 13}
--- !u!1 &7
GameObject:
m_ObjectHideFlags: 0
m_Name: Main Camera
m_Component:
- 4: {fileID: 9}
- 20: {fileID: 10}
활용 예제
- 씬 생성 및 저장: Unity에서 새로운 씬을 만들고 나서, 위에 제시된 YAML 포맷을 사용하여 씬 정보를 저장할 수 있습니다.
- 씬 수정: 기존의 YAML 파일을 텍스트 편집기로 열어 특정 게임 오브젝트의 위치나 이름을 수정함으로써, 실시간으로 해당 씬을 변경할 수 있습니다.
- 버전 관리: YAML 포맷은 텍스트 기반이므로, Git과 같은 버전 관리 시스템을 사용하여 이전 버전으로 쉽게 돌아갈 수 있습니다.
결론
Unity의 YAML 씬 파일은 씬을 구성하는 다양한 요소들을 효율적으로 직렬화하는 방법을 제공합니다. 이를 통하여 Unity 개발자는 씬 생성, 수정 및 관리의 편리함을 얻을 수 있습니다.