Unity Meta文件
当我们把新的资源导入Unity时,Unity会自动做下面这件事:
- 分配唯一ID
- 创建.meta文件
- 处理资源
分配唯一ID:
Unity会维护一个自己资源列表,在将资源导入Unity的时候,Unity会先检测这个资源列表,然后为导入的资源分配一个唯一的ID,在Unity中会使用此ID来引用资源。
创建.meta文件
Unity在4.2版本后加入了.meta文件,如果在4.2以后的版本中看不到.meta文件可以进行以下设置:
- meta文件的作用
1.是用于辅助管理Unity资源文件的文件,Unity根据meta里记录的GUID来区分项目中的不同资源;
2.meta还记录了一些对应资源的非常重要的信息,比如:各个资源Inspector的信息等。
Edit->Project Settings->Editor / VersionControl 选项中设置Visible meta Files 选项
经过上述行为后,打开工程目录(在Project面板中,右键选择Show in Explorer选项),就可以看到以.meta后缀的文件。可以看到Unity为Assets文件中的每个文件和文件夹都创建了.meta文件。
meta文件一般包含了一下内容
名称 | 描述 |
---|---|
guid | 上面所提到的 Unity 会分配一个唯一ID,就是存放在这里 |
Monoimporter | 根据不同的文件类型,它的数据是不同的 ImoprotSetting 数据,比如 Mode Improter,Audio Improter 等等,对照 Inspector 面板就可以看懂每行数据 |
注意:.meta文件必须与各自的资源文件相匹配,如果在Unity窗口中移动或重命名资源,Unity也会自动移动或重命名相应的.meta文件,如果在Unity之外移动或重命名资源文件,则必须移动或重命名.meta,否则Unity会重新生成一个.meta文件,并删除旧的.meta文件。当.meta文件发生改变后,任何引用该资源的游戏对象或预制体,将会丢失对该资源的引用,因为Unity会重新生成一个唯一ID。(比如上传SVN时,一定要注意上传.meta文件)
处理资源
Unity会将你导入到工程中的数据进行一次转换,转换为Unity在编辑器运行时能识别的数据,这些数据会被存放在工程的Library文件中。
Library文件内的内容是由Unity自动生成的,所以我们不用去进行对Library文件的修改。在对Unity工程进行版本控制时,也不需要将Library文件加入其中。
导入时创建多个资源:
某些资源在导入时会创建多个资源,例如:
- 3D文件(FBX 材质或纹理):材质或纹理会被Unity 提取为单独的资源。
- 多个精灵的图像:使用Unity的Sprite Editor ,可以将的那个图形定义为多个精灵,这种情况下,在编辑器中定义的每个sprite在Project窗口中显示为单独的Sprite资源
- 3D文件拥有多个动画片段,或在动画导入设置中定义了多个动画剪辑:多个动画片段将显示为单个动画片段的资源。