Meta文件详解——Unity GUID/LocalID系统
1、GUID
Guid是Meta中最最最重要的数据。这个Guid代表了这个文件,无论这个文件是什么类型(甚至是文件夹)。换句话说,通过GUID就可以找到工程中的这个文件,无论它在项目的什么位置。在编辑器中使用AssetDatabase.GUIDToAssetPath和AssetDatabase.AssetPathToGUID进行互转。
所以在每次svn提交时如果发现有Meta文件变更,一定要打开看一下。看看这个Guid是否被更改。理论上是不需要更改的。
2、ImportSetting数据
后面比较重要的数据是ImportSetting数据。根据不同的文件类型,它的数据是不同的ImportSetting数据,比如上面的NativeFormatImporter、ModelImporter、AudioImporter等等。只要对照Inspector面板中的条目,都可以看懂每一行的意义。
所以知道这个之后,我们可以发现,假如我们把一个文件和这个文件的Meta文件从一个Unity工程复制到另一个Unity工程中,它的配置是不会变的。
序列化文件详解——Unity文件引用系统
这里有一点,我们看到有一个叫做InstanceID的数据。这个是Unity中一个实例的ID。每一个Unity实例都会有一个InstanceID。在运行时,可以使用UnityEngine.Object的GetInstanceID获取。但是要注意的是,每一次运行,相当于重新生成了新的实例,所以这个值是可变的。