前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Unity3D中的meta文件笔记

Unity3D中的meta文件笔记

作者头像
太阳影的社区
发布2021-10-15 16:53:31
发布2021-10-15 16:53:31
2.1K0
举报

最近在工程项目中发现,在自己的电脑上没有问题的场景,在同事的电脑上就会出问题。问题就是场景中引用到的script、prefab总是会出现Unity找不到的情况(显示“Missing xxx”)。最终发现原来是我们一开始设置的git里面,就直接移除了对.meta文件的追踪。后来在.gitignore中移除了相应的忽略设置后,重新上传文件,问题得到了解决。

.meta文件的作用

在Unity中,每次我们创建一个prefab、导入文件的时候,Unity都会自动生成为这个prefab、资源文件生成一个独特的ID,这是为了方便Unity进行资源管理,在你重命名、移动资源的时候也能能够实时更新其他对这个资源的引用。例如你创建了一个prefab,prefab里面有一张图片。此时你更改了图片的名称,重新打开prefab查看(当然,旧版本的Unity需要移动到场景中才能查看,不能直接打开),就会发现你在完全没有更新图片的引用的情况下,Unity自动完成了相关资源的更新。而这就依赖Unity对每一个导入的资源、自己制作的Prefab生成唯一的ID来进行管理。

通常我们称这个ID为GUID,而这个GUID通常就保存在与资源文件同名的.meta文件中。如果GUID丢失,那么很可能可能相关引用就会失效。

.meta文件其实是个文本文件,你可以直接通过文本编辑工具(如VS Code)打开它,例如:

可以看到这个文件对应的GUID。其他的信息我们这里暂时不管,主要与导入设置相关。

如果你让Unity强制以文本形式保存prefab,然后用文本编辑器打开来看,还可以看到其引用的资源的GUID,这保证了Unity能够在这些资源更改了名字或者被移动到其他文件夹的时候找到它们。

但是,如果你是在Unity外面,例如在Finder(mac的资源管理器)或者文件管理器里面修改了这些资源的名字,那么就需要将.meta文件也手动修改名字以确保.meta文件的名字与资源名字保持一致,否则可能会导致引用失效。

总结下:.meta文件主要保存了相应的文件的GUID,这是Unity用于资源管理的,每个资源独一份的ID,prefab中对资源的引用就依赖GUID和.meta文件来实现。这就是为什么在使用版本跟踪工具的时候也需要跟踪.meta文件。

参考

Unity 配置使 .prefab 可以文本化阅读修改 Behind the Scenes(Unity关于meta文件的官方文档) What is a .meta file and why does Unity create them for all of my assets? Unity中.Meta文件作用详解

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • .meta文件的作用
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档