ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【技术博客】Unity脚本出现missing时的解决方法 | week15

2022-06-11 17:02:09  阅读:158  来源: 互联网

标签:脚本 文件 week15 missing unity Unity meta guid miss


在做unity项目时,我们可能会遇上如下所示的脚本丢失问题:

这个问题出现在我们软工使用git进行合作开发时,最后经过排查,发现是.meta文件出现了问题,原因是我们的gitignore中不小心加入了*.meta(直接使用了官方的ignore文件没有注意到这个),然后在开发时,pull别人的commit时,meta文件没有解决完冲突就保存到本地了:

可以看到这个文件里存了一堆git的冲突信息,因此如果出现了missing的情况,可以先去自己的.meta文件里,看看是否有不恰当的git冲突信息,如果有的话可以像我上面一样解决便好了。

当然只修改这个不一定完全解决问题,有可能guid出现了错乱。下面讲讲手动改guid来恢复脚本,这样就不用一个一个脚本重新拖了,怪麻烦的。

手动改guid以正确加载miss脚本

当然,如果没有这些git导致的原因,还是出现了miss的话,那么便是脚本的meta中的guid出现了问题。我们首先简单了解一下meta的原理:

可以看到这个脚本实际上有一个guid,.unity文件实际上就是通过这个来找脚本的。因此我们如果已知有很多地方都使用了这个脚本,可以先去一个miss的地方,将这个脚本拖到miss的地方去,然后查看.unity文件中变化的地方:

1、将正确的脚本拖到miss的地方:

可以看到直接拖过去,脚本的一些设置还是null的,如果要全部重新拖一遍的话,非常麻烦。但是我们下面直接修改guid来解决这个问题。

2、查看.unity文件的变化

可以看到,实际上这个场景的.unity文件中脚本的映射guid变化了,场景之所以找不到脚本,是因为脚本的.meta文件里的guid变化了,我们只需要将这个guid改为场景中之前的guid即可,比如现在场景的变化是:

  从
  m_Script: {fileID: 11500000, guid: 4324dfer1453a2343445596123450cba, type: 3}
  变化为了
  m_Script: {fileID: 11500000, guid: 693980ce1453a064e9a5596448770cba, type: 3}

3、修改脚本.meta中的guid,同时复原.unity文件

将693980ce1453a064e9a5596448770cba改为4324dfer1453a2343445596123450cba即可,注意要把.unity的文件改动清除,因为我们第2步只是为了找到脚本正确的guid。

现在引用了这个脚本的场景都恢复正常了,因为可以通过之前的guid找到脚本了,脚本中的参数也不会清空。

标签:脚本,文件,week15,missing,unity,Unity,meta,guid,miss
来源: https://www.cnblogs.com/hair-duang-duang/p/16366239.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有