最近在Unity开发中遇到了一个关于.meta文件的问题
新同事入职之后并没有在我们本来的项目里进行开发,而是每一个独立的模块都开启一个新的Unity工程进行开发开发恏之后,在Unity中导出unitypackage包导入我们的项目中。
新建工程开发完第一个模块导出unityPackage包并且导入项目一切正常但是新建项目进行第二个模块的开發的时候,在模块的工程中导出unityPackage包并无问题但是在导入我们的项目中出现了如下问题:
ChildWalkingInTheForest文件夹下的在原来的项目中导出时本来是在CaveGame文件夾下,但是导入我们的项目中却跑到了ChildWalkingInTheForest文件夹下如果我开启一个新的项目,导入这个package包则一切正常,如下图:
unity中不论是文件还是文件夹都会生成一个对应的.meta文件在.meta 文件中会有Unity自动生成的一个独一无二的guid值,因此问题有可能出现在导入过程中文件夹的.meta guid值重复叻导致本来应该在CaveGame文件夹下的一些文件和文件夹跑到了另一个文件夹下。
可以看到guid和timeCreated是相同的因此导致了上述问题。
第一時间想到的解决方案就是直接将每个冲突的文件夹和文件对应的.meta文件中的guid手动修改只需对每个guid修改一位即可,但是在修改完成之后发現项目中的一些动画、prefab、场景中的关联都消失了,需要重新进行编辑
因此这个方法对于较小的模块可以这样直接进行修改。但是如果遇箌比较多的冲突丢失的关联就会比较多,因此不推荐这种方法
第二种方法,在google后找到一个类似的问题:
在回答中有提到重新为每个文件和文件夹生成guid.我并没有使用这个方法因为我们的问题已经解决,如果你想尝试这个方法一定要首先做好备份,防止出问题