Unity 텍스트 기반 씬 파일 가이드
Unity에서 텍스트 기반 씬 파일은 YAML(data serialization language)을 사용하여 씬 내의 오브젝트를 구성하는 방식입니다. 이 문서에서는 Unity의 씬 파일 포맷을 설명하고 활용 예제를 제공하겠습니다.
YAML 및 Unity 씬 파일 개요
YAML은 사용자가 사람에게 읽기 쉬운 형식으로 데이터를 표현하는 오픈 포맷입니다. Unity에서는 이 YAML 포맷의 커스텀 버전을 사용합니다. 각 게임 오브젝트 및 구성 요소는 별도의 YAML 문서로 정의됩니다.
기본 구조
YAML 문서는 다음과 같은 기본 구조로 오브젝트를 정의합니다:
!u!<ObjectClass> &<ID>
<ObjectClass>:
m_ObjectHideFlags: <value>
...
!u!
는 오브젝트의 버전을 나타내며,<ObjectClass>
는 오브젝트 타입을,<ID>
는 해당 오브젝트의 고유 ID를 정의합니다.
예제
아래는 간단한 게임 오브젝트와 그에 속하는 Transform 구성 요소의 예제입니다.
--- !u!1 &6
GameObject:
m_ObjectHideFlags: 0
m_Name: Cube
...
--- !u!4 &8
Transform:
m_LocalPosition: {x: -2.618721, y: 1.028581, z: 1.131627}
...
위의 예제에서 Cube
라는 이름의 게임 오브젝트와 해당 Transform
이 정의되어 있는 것을 볼 수 있습니다.
오브젝트 속성
각 오브젝트에는 다양한 속성이 있으며, 일반적으로 속성 이름 앞에 m_
이 붙습니다. 여기서 몇 가지 중요한 속성을 소개합니다:
속성 | 설명 |
---|---|
m_Name | 오브젝트의 이름 |
m_LocalPosition | 오브젝트의 로컬 위치 |
m_LocalRotation | 오브젝트의 로컬 회전 |
m_LocalScale | 오브젝트의 로컬 스케일 |
위의 속성들은 게임 오브젝트 및 Transform 컴포넌트의 중요한 부분입니다.
부동 소수점 표현
Unity에서는 부동 소수점을 다양한 방식으로 표현할 수 있습니다:
표현형태 | 설명 |
---|---|
0x3F800000 | 16진수 표현 |
1 | 10진수 표현 |
1.000 | 소수점 표현 |
0.1e12 | 지수 표현 |
부동 소수점 값은 Unity 내부에서 위치를 나타내는 데 사용됩니다.
활용 예제
- 게임 오브젝트 생성: 새로운 게임 오브젝트를 추가하려면, 위와 같은 YAML 포맷으로 정의합니다. 다음은
Sphere
라는 이름의 오브젝트를 추가하는 예제입니다:
--- !u!1 &7
GameObject:
m_ObjectHideFlags: 0
m_Name: Sphere
...
- Transform 이동:
Transform
속성 값을 수정하여 오브젝트의 위치를 변경할 수 있습니다:
--- !u!4 &8
Transform:
m_LocalPosition: {x: 0, y: 2, z: 0}
결론
Unity의 텍스트 기반 씬 파일은 게임 오브젝트를 효율적으로 관리하는 데 도움을 줍니다. YAML 포맷에 대한 이해는 씬을 쉽게 수정하고 관리할 수 있는 기초가 됩니다. Unity의 구조를 잘 활용하면 복잡한 프로젝트도 간단하게 정리하고 수정할 수 있습니다.
더 많은 정보는 Unity YAML 문서에서 확인할 수 있습니다.