Version: 6000.3
语言: 中文
基于文本的场景文件
统一YAML

文本序列化文件的格式

Unity 的场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
format 使用 YAML 数据序列化语言的自定义子集。YAML 是一种开放格式,YAML 网站上提供了有关它的文档。有关 Unity 中使用的 YAML 的更多信息,请阅读有关 UnityYAML 的文档。

该文件将场景中的每个对象写入单独的 YAML 文档。该序列在文件中引入每个对象。在此上下文中,术语“对象”是指---游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表
、组件和其他场景数据的集合:这些项目中的每一个都需要在场景文件中拥有自己的 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}

以下示例显示了附加的Transform 组件Transform 组件确定场景中每个对象的 Position、Rotation 和 Scale。每个 GameObject 都有一个 Transform。更多信息
请参阅术语表
到上面 YAML 文档定义的 GameObject。{fileID:6}用于表示游戏对象,因为文件中游戏对象的对象 ID 为 6。

m_GameObject: {fileID: 6}

IEEE 754 格式的十进制表示形式或十六进制数(由 0x 前缀表示)可用于表示浮点数。Unity 使用 IEEE 754 表示形式对值进行无损编码,并写入没有短小数表示形式的浮点值。当 Unity 以十六进制写入数字时,它始终将十进制格式写入括号中以进行调试,但在加载文件时实际仅解析十六进制。要手动编辑这些值,请删除十六进制并输入十进制数。以下示例显示了浮点值的有效表示形式(所有值都表示数字 1):

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

基于文本的场景文件
统一YAML