Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Формат текстовых сериализованных файлов

Сцена UnityСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
See in Словарь
используется настраиваемое подмножество языка сериализации данных YAML. YAML — это открытый формат, документация по которому доступна на веб-сайте YAML. Дополнительные сведения о YAML, используемом в Unity, см. в документации по UnityYAML.

Файл записывает каждый объект в сцене как отдельный документ YAML. Последовательность --- представляет каждый объект в файле. В этом контексте термин «объект» относится к GameObjectsфундаментальному объекту в сценах Unity, который может представлять персонажей, реквизит, декорации. , камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словарь
Компоненты и другие данные сцены вместе: каждый из этих элементов требует собственный документ 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). Число, следующее за амперсандом, является уникальным идентификатором объекта в файле, хотя этот номер присваивается каждому объекту произвольно. Каждое из сериализуемых свойств объекта обозначается строкой, подобной следующей:

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}

В следующем примере показан прикрепленный компонент преобразованияКомпонент преобразования определяет положение, поворот и масштаб каждого объекта в место действия. Каждый GameObject имеет Transform. Подробнее
См. в Словарь
GameObject, определенный в документе YAML выше. {fileID:6} используется для представления GameObject, поскольку идентификатор объекта GameObject в файле равен 6.

m_GameObject: {fileID: 6}

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

myValue: 0x3F800000 myValue: 1 myValue: 1.000 myValue: 0x3f800000(1) myValue: 0.1e1
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3