.meta 文件的作用简单来说是建立
Unity
与资源之间的“桥梁”。 在游戏中引用一个游戏资源,Unity
并不是直接按照文件的路径或者名称,而是使用一个独一无二的 GUID
来指向工程里该资源文件。
这个 GUID
就是存储在
Unity
工程为每一个资源和文件生成的
meta
文 件里。除了 GUID
,
meta
文件还存储了有关资源导入的信息。例如,贴图资源在导入时可以当作标准贴图、法线贴图、GUI
贴图、
cookie
或者光线贴图。这些导入设置都会被存储在 meta
文件里。
GUID 优点:移动、重命名或者修改资源的内容,这个资源仍然可以通过 GUID 来被引用(只要
GUID
不变,资源就能够被引用。
GUID 缺点:必须明确的意识到 Meta 文件是被关联到特定的资源 上的,如果删除了一个 meta 文件,
Unity
会认为原始的资源文件已经 被删除,然后为这个“
新的
”
资源文件生成一个新的
GUID
。这就是游戏场景中的资源引用中断的最常见原因。
当把新的资源导入 Unity 时,Unity 会自动做下面这件事:
1.
分配唯一
ID
2.
创建
.meta
文件
3.
处理资源
1.
分配唯一
ID
:
Unity 会维护一个自己资源列表,在将资源导入
Unity
的时候,
Unity会先检测这个资源列表,然后为导入的资源分配一个唯一的 ID
,在Unity 中会使用此
ID
来引用资源。
2.
创建
.meta
文件
Unity 在
4.2
版本后加入了
.meta
文件,如果在
4.2
以后的版本中看不到.meta
文件可以进行以下设置
:
Edit->Project Settings->Editor / VersionControl 选项中设置 Visible meta Files 选项
经过上述行为后,打开工程目录(
在
Project
面板中,右键选择
Show in Explorer 选项
),
就可以看到以
.meta
后缀的文件。可以看到
Unity
为 Assets 文件中的每个文件和文件夹都创建了
.meta
文件。
3.
处理资源
Unity 会将你导入到工程中的数据进行一次转换,转换为
Unity
在编辑器运行时能识别的数据,这些数据会被存放在工程的 Library
文件中。Library
文件内的内容是由
Unity
自动生成的,所以我们不用去进行对 Library
文件的修改。在对
Unity
工程进行版本控制时,也不需
要将
Library
文件加入其中。
meta
文件的作用
1.是用于辅助管理
Unity
资源文件的文件,
Unity
根据
meta
里记录的 GUID
来区分项目中的不同资源;
2.meta 还记录了一些对应资源的非常重要的信息,比如:各个资源 Inspector
的信息等。
meta
文件一般包含了一下内容
guid:上面我们说 Unity 会分配一个唯一
ID
,就是存放在这里
MonoImporter:根据不同的文件类型,它的数据是不同的 ImprotSetting 数据,比如 Mode Improter
,Audio Improter 等等,对照
Inspector
面板就可以看懂每行数据