版本:Unity 6 (6000.0)
语言:英语
基于文本的场景文件
UnityYAML

文本序列化文件的格式

Unity 的 场景场景包含游戏环境和菜单。可以将每个唯一的场景文件视为一个独特的关卡。在每个场景中,您放置环境、障碍物和装饰,从本质上讲是分段设计和构建游戏。 更多信息
参见 术语表
格式使用 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}

以下示例显示了附加到上述 YAML 文档定义的游戏对象的 变换组件变换组件确定场景中每个对象的位置、旋转和缩放。每个游戏对象都有一个变换。 更多信息
参见 术语表
{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


  • 2018 年 5 月 13 日 发布页面
基于文本的场景文件
UnityYAML