Version: 2019.3
텍스트 기반 씬 파일
UnityYAML

텍스트 직렬화 파일의 포맷

Unity의 씬 포맷은 YAML 데이터 직렬화 언어의 커스텀 하위 집합을 사용합니다. YAML은 오픈 포맷의 일종으로, 관련 설명은 YAML 웹사이트에서 확인할 수 있습니다. Unity에서 사용되는 YAML에 대한 자세한 내용은 UnityYAML 문서를 참조하십시오.

이 파일은 씬의 각 오브젝트를 별도 YAML 문서로 작성합니다. --- 시퀀스는 파일의 각 오브젝트를 소개합니다. 이때 “오브젝트”는 게임 오브젝트, 컴포넌트 및 기타 씬 데이터를 통칭하는 용어입니다. 이러한 각 항목은 씬 파일 내에서 고유한 YAML 문서를 필요로 합니다. 다음 예제는 직렬화된 오브젝트의 기본 구조를 보여줍니다.

--- !u!1 &6
GameObject:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  importerVersion: 3
  m_Component:
  - 4: {fileID: 8}
  - 33: {fileID: 12}
  - 65: {fileID: 13}
  - 23: {fileID: 11}
  m_Layer: 0
  m_Name: Cube
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1

첫 번째 줄은 문서 마커 이후에 !u!1 &6 문자열을 포함하고 있습니다. !u! 이후 나타나는 첫 번째 숫자는 오브젝트의 클래스를 나타내며, 이 경우에는 게임 오브젝트입니다. 앰퍼샌드 기호(&) 다음에 나타나는 숫자는 파일에서 고유한 오브젝트 ID 번호이며, 이 숫자는 각 오브젝트에 임의로 할당됩니다. 각 오브젝트의 직렬화 가능한 프로퍼티는 다음과 같은 행으로 표시됩니다.

m_Name: Cube

프로퍼티는 앞에는 보통 m_이 붙지만, 그렇지 않은 경우에는 스크립트 레퍼런스에 정의된 프로퍼티 이름을 따릅니다. 다음 예제는 파일에서 더 아래에 정의된 또 다른 오브젝트의 모습을 보여줍니다.

--- !u!4 &8
Transform:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 6}
  m_LocalRotation: {x: 0.000000, y: 0.000000, z: 0.000000, w: 1.000000}
  m_LocalPosition: {x: -2.618721, y: 1.028581, z: 1.131627}
  m_LocalScale: {x: 1.000000, y: 1.000000, z: 1.000000}
  m_Children: []
  m_Father: {fileID: 0}

다음 예제는 위의 YAML 문서에 정의된 게임 오브젝트에 연결된 Transform 컴포넌트를 보여줍니다. {fileID:6}은 게임 오브젝트를 파일 내 게임 오브젝트의 ID로 나타내기 위해 사용되며, 이 경우 파일 ID는 6입니다.

m_GameObject: {fileID: 6}

10진수, 또는 IEEE 754 포맷(0x 접두사로 표시됨) 16진수를 사용하여 부동 소수점 숫자를 표현할 수 있습니다. Unity는 IEEE 754 표현 방식을 값의 무손실 인코딩에 사용하며, 짧은 10진수 표현이 없는 부동 소수점 값을 작성합니다. Unity가 숫자를 16진법으로 작성하는 경우 디버깅을 위해 괄호 안에 10진수로 동시에 작성하지만 전자만 파일을 로딩할 때 파싱됩니다. 이 값을 수동으로 편집하려면 16진수를 삭제하고 10진수만 입력해야 합니다. 다음 예제는 부동 소수점 값을 유효하게 표현할 수 있는 방법을 보여줍니다(모두 1을 표현하고 있음).

myValue: 0x3F800000
myValue: 1
myValue: 1.000
myValue: 0x3f800000(1)
myValue: 0.1e1


  • 2018–05–13 일 페이지 게시됨
텍스트 기반 씬 파일
UnityYAML