Version: 5.3 (switch to 5.4b)
Text-Based Scene Files
Пример YAML файла сцены

Описание Формата

Формат сцен Unity реализован при помощи языка сериализации данных YAML. Хотя мы не можем рассмотреть здесь все особенности YAML, это открытый формат, и его спецификации доступны бесплатно на сайте YAML. Каждый объект в сцене записан в файл как отдельный YAML документ, который представлен в файле через последовательность —. Заметьте, что в данном контексте термин “объект” обозначает GameObjects, Components и другие данные сцены в совокупности; каждый из этих объектов требует собственный 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!” обозначает класс объекта (в данном случае, это GameObject). А число, следующее за амперсандом, это идентификационный номер объекта (ID), уникальный внутри файла, хотя и назначающийся каждому объекту произвольно. Каждое сериализуемое свойство объекта обозначается линией, такой как эта:-

 m_Name: Cube
--- !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}

Это Transform компонент, присоединенный к игровому объекту (GameObject), определенный через YAML документ выше. Присоединенная часть обозначается линией:-

 m_GameObject: {fileID: 6}

Числа с плавающей точкой могут быть представлены в десятичном виде или как шестнадцатиричное число в формате IEE 754 (обозначенные префиксом 0x). IEE 754 представление используется для кодирования значения без потерь, и используется Unity при записи значений, которые не имеют короткого десятичного вида. Когда Unity записывает числа в шестнадцатиричном виде, они также записываются в десятичном виде в скобках в целях отладки, но только первый вид считывается при загрузке файла. Если хотите отредактировать эти значения вручную, просто уберите шестнадцатиричное число и введите десятичное. Вот несколько корректных примеров записи чисел с плавающей точкой (все представляют число один):

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

Свойства обычно идут с префиксом “m_”, но в остальном следуют имени свойства, которое определено в справке по скриптам. Второй объект, определенный ниже в файле, может выглядеть следующим образом:- …поскольку GameObject ID в файле был 6.

Text-Based Scene Files
Пример YAML файла сцены