.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 面板就可以看懂每行数据