|
统一的场景格式是用YAML数据序列化语言实现。虽然我们不能在这里深度的覆盖YAML的,它是一个开放的格式和规范是免费的YAML网站。在场景中的每个对象写入文件作为一个单独的YAML文件中提出的文件的顺序。请注意,在这种情况下,术语“对象”是指游戏对象、组件和其他场景数据的统称;每个项目都需要在场景文件的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
The first line contains the string “!u!1 &6” after the document marker. The first number after the “!u!” part indicates the class of the object (in this case, it is a GameObject). The number following the ampersand is an object ID number which is unique within the file, although the number is assigned to each object arbitrarily. Each of the object’s serializable properties is denoted by a line like the following:-
m_name:立方体
属性通常以“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文件定义游戏对象组件。附件是由线条表示:—
m_gameobject:{ 6 }为:
…since the GameObject’s object ID within the file was 6.
浮点数可以在十进制表示或在IEE 754格式的十六进制数表示(以0x前缀表示)。IEE 754表示用于无损编码的值,并使用统一的时候写的浮点值,没有一个短暂的十进制表示。当统一写的十六进制的数字,它也用于调试目的写在括号中的十进制格式,但只有六实际上是解析加载文件时。如果你想手动编辑这些值,只需删除十六进制,只能输入一个十进制数字。这里有一些有效的表示的浮点值(所有代表一号):
myvalue:0x3f800000
myvalue
myvalue:1:1000
0x3f800000 myvalue:(1):0.1e1
myvalue
|
|