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