cc.missingscript导致的场景文件打不开问题及目前解决方案

  • Creator 版本: 3.4.2
    以往版本的3.1版本时不时有过这类型的问题,出现的情况大致是目标节点的组件脚本出现了报错,导致这个脚本组件无法正常识别导致的。处理这类问题无非就是麻烦点,把节点上的脚本重新删除然后重新挂上就是了。

  • 重现方式:现在3.4.2可不得了,出现的问题往往是复制节点的时候概率性出现的问题。今天就是把场景文件A的一个节点直接复制,粘贴到场景文件B里面去,除此操作外,A完全没有动过。就导致了A节点的脚本missscript。这时候,你千万不要做删除脚本文件,然后想着重新挂载,别做!因为你在新增组件那里根本搜不到,挂载不了。你删除了还会导致你切换场景后,场景A打不开,因为missingscript打不开场景!还会导致一个问题,新生成的组件都没法挂载了,原missingscript脚本生成副本再挂载没戏,都没法挂载了。目前自己还在找方法恢复。。
    这个问题从论坛里搜索在18年就有人提出了,目前官方还没有一个成熟的解决方法提供。
    如果你不幸中招了。请记得:场景间互相复制节点的时候,先将节点生成副本,把副本节点xxx-001给预制体化,然后摘除掉上面的组件脚本,再放到其他场景下

(该问题二次编辑,于二楼提供目前的解决方案)

  • 之前哪个版本是正常的: 使用过2.4.5,3.0,3.1.2,3.4.0,3.4.1,3.4.2,都没有
  • 编辑器操作系统: mac,m1芯片

嗯。。。在这里提供目前的解决方法:
A场景:被复制节点场景,missScript出现;B场景:复制、粘贴节点场景
(如果刚发现这种问题,别动任何操作,别动missscript的节点。)
第一种:B场景文件复制一份副本,把副本文件和其meta文件先放到不在工程目录下的任何地方做个备份(免得之前做的东西缺斤少两)。回到B场景,把之前粘贴的节点删除,保存场景。保证不再有导致报错的粘贴节点存在。然后回到B场景,发现之前missScript的节点恢复了。
十分钟后发现一种更简单的方法:
第二种:用cocos低版本3.1.2,打开A场景,发现missScript的组件恢复了。(此时不要切换到B场景,别好了就切,切了也打不开),保存A场景文件后,关闭cocos3.1.2,在用cocos3.4.2打开项目,选择B场景,将上面从A复制过来的脚本删掉。保存B场景文件,再次切换回A场景,发现之前missScript的节点恢复了。
结论:千错万错,都是涉事节点上的脚本莫名其妙导致的,无论如何都要删掉导致报错节点上的脚本。
跨场景复制需谨慎,强烈推荐先制作预制体。
恢复情况:ok
用时:昨天出现过,涉及改动太多未找到根源导致未解决,浪费了3小时,今天又出现了,痛定思痛解决了,用时1.5小时,在论坛上bb半小时,总计5小时

1赞

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。