美文网首页
Asset文件格式描述

Asset文件格式描述

作者: 晓龙酱 | 来源:发表于2017-09-14 20:41 被阅读473次

    Unity中asset的序列化有两种方式:Binary,Text。
    一般项目里会使用Text的方式,主要原因是可以使用版本控制,Merge这些文件。

    在Text模式下,所有在Unity中创建的asset资源都可以通过文件编辑器打开,阅读其中的内容。例如Main.unity, building.prefab, building.material, role.controller等等。

    Unity使用YAML标记语言来组织说明这些asset。

    制作一个GameObject的Prefab,打开asset文件内容如下:

    %YAML 1.1
    %TAG !u! tag:unity3d.com,2011:
    --- !u!1001 &100100000
    Prefab:
      m_ObjectHideFlags: 1
      serializedVersion: 2
      m_Modification:
        m_TransformParent: {fileID: 0}
        m_Modifications: []
        m_RemovedComponents: []
      m_ParentPrefab: {fileID: 0}
      m_RootGameObject: {fileID: 1428368473011942}
      m_IsPrefabParent: 1
    --- !u!1 &1428368473011942
    GameObject:
      m_ObjectHideFlags: 0
      m_PrefabParentObject: {fileID: 0}
      m_PrefabInternal: {fileID: 100100000}
      serializedVersion: 5
      m_Component:
      - component: {fileID: 4169282005572874}
      m_Layer: 0
      m_Name: GameObject
      m_TagString: Untagged
      m_Icon: {fileID: 0}
      m_NavMeshLayer: 0
      m_StaticEditorFlags: 0
      m_IsActive: 1
    --- !u!4 &4169282005572874
    Transform:
      m_ObjectHideFlags: 1
      m_PrefabParentObject: {fileID: 0}
      m_PrefabInternal: {fileID: 100100000}
      m_GameObject: {fileID: 1428368473011942}
      m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
      m_LocalPosition: {x: -0.57, y: 3.4948516, z: -0.6245509}
      m_LocalScale: {x: 1, y: 1, z: 1}
      m_Children: []
      m_Father: {fileID: 0}
      m_RootOrder: 0
      m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
    

    可看出,整个文件的结构如下:

    • 前两行固定信息
    • 多个组件信息
      每个资源都是由若干组件构成,每个组件描述了各种属性
    1. 文件头
      前两行固定信息
    %YAML 1.1
    %TAG !u! tag:unity3d.com,2011:
    
    1. 各个组件信息
    • 组件类型ID,内部对象ID
    --- !u!1001 &100100000
    

    第一个数字1001,表示此asset的类型,代表Prefab。
    第二个数字100100000,是在当前文件中的对象ID,只在当前文件中有效。有可能不同的asset的对象ID是相同的。注意这个不是FileID,FileID存在.meta中, 是合局唯一的。

    • 组件类型名
    Prefab:
    

    这里的名称与组件类型ID对应,对应表如下。

    https://docs.unity3d.com/560/Documentation/Manual/ClassIDReference.html

    • 组件的各种属性
    m_ObjectHideFlags: 1
      serializedVersion: 2
      m_Modification:
        m_TransformParent: {fileID: 0}
        m_Modifications: []
        m_RemovedComponents: []
      m_ParentPrefab: {fileID: 0}
      m_RootGameObject: {fileID: 1428368473011942}
      m_IsPrefabParent: 1
    

    https://docs.unity3d.com/560/Documentation/Manual/FormatDescription.html

    相关文章

      网友评论

          本文标题:Asset文件格式描述

          本文链接:https://www.haomeiwen.com/subject/ykqjsxtx.html