Unity - GUID冲突的避免操作


这个内容记录便于避免 GUID 冲突,无论是对,程序(有些程序新人也不懂)、策划、美术、外包、外派,都同样有效

如果不限制大家对 unity 资源的操作方式,会很容易导致 GUID 冲突,一旦 import 进来,将导致各种 unity 资源引用丢失的问题

如果项目人员多的时候,使用 unity 开发的话,就一定要先给大家培训,了解这个问题


unity GUID 冲突的误操作的几个可能点作:

  1. 不能在 资源管理器(就是windows操作系统的文件夹下复制的方式添加 *.meta)

  2. 在 unity project 视图下 rename(重命名)后,先提交 删除的文件,和增加的文件,然后再修改,后续再提交修改的内容

    • rename(重命名) 对于svn就是:先删除原来文件名的文件,再增加新的文件名的文件,所以一定要记得提交删除的 和 添加的文件,同时一起提交
  3. 如果要更新 svn资源,并且在 unity 中有对已经在 svn 中有版本管理的文件 rename(重命名)操作了,那么记得要先执行上面第 2 点的处理,再更新 svn

    • rename(重命名)已经提交过svn的资源,不要马上更新,记得先提交rename的 删除和增加的文件,再更新,原因:rename资源后,资源对应的*.meta中的 GUID 是不变的,如果你在 svn update(更新)的话,那么原来的文件和*.meta都会重新下载下来,那么这个时候就会有两个*.meta 文件的 GUID 是一样的问题,比如:A.mat, A.mat.meta, 两个文件,A.mat.meta 中的 GUID 假设为 111,这时如果你在 unity project 视图中 重命名为:A_01.mat, A_01.mat.meta,这时 A_01.mat.meta 中的 GUID 还是 111,然后这时还没提交 删除原来的 A.mat, A.mat.meta 和 增加 A_01.mat, A_01.mat.meta 文件的话,然后再马上更新,这时本地就会出现四个文件:A.mat, A.mat.meta, 和 A_01.mat, A_01.mat.meta,其中 A.mat.meta 和 A_01.mat.meta 中的 GUID 是一样的,就会导致 GUID 冲突
  4. rename 只能处理自己的文件,别人的文件不要rename(复制别人的资源,可以rename,比如,自己在 unity 中 ctrl + d 复制出来的文件,重命名)

  5. 除了 资源管理器复制 meta,rename then update 的重复 meta,等操作,还有一些其他方式导致 meta 复制,或是出现了 GUID 相同的才操作都会有这个问题,比如,别人修改了一个A.mat.meta 的名字为:B.mat.meta ,然后(通过QQ,微信,钉钉,飞鸽,等方式)发给你,你再导入项目的话,一样会有GUID 冲突

猜你喜欢

转载自blog.csdn.net/linjf520/article/details/127998024