对于MacOS来说,Unity层出不穷的闪退,我想这是不够友好的。2020年及以前的版本,只支持Intel芯片,要想在Apple Silicon的机器上运行,还需要通过Rosetta,但2021及之后的版本同时支持Intel和Apple Silicon,但不管哪个版本,在Silicon上闪退都已经是常事。
这几天尝试把一个使用2020的项目,升级到了2022,在经历数不清的闪退之后,大概总结到了一点经验,主要问题都是关于版本号的,即依赖的版本号、插件的版本号。
1. 依赖package的版本
打开Window中的Package Manager,这里是项目用的到Package,多数Package对于一个特定版本的Editor,都有一个推荐的版本,在版本号上面会提示,这里最好接受它的推荐,即便是升级到新版本后,原有的代码可能需要调整修改。
这里除了官方提供的Package,还会有其他方式导入的,比如Git仓库,还比如放到和Assets同级别的Packages目录中的Custom依赖库,这些的版本号都需要确认。
2. 插件的版本
除了上面的1,项目还会通过UnityPackage文件导入一些依赖库,这种依赖就需要去查和当前的Editor最匹配的版本号,因为我升级到的2022是相对较新的版本,所以依赖库我直接升级到了最新,比如DOTween等。
有的插件可以在Assets Store中找到,但有的可能已经找不到了,这里有个Asset资源网站,可能会有用:Unity Asset Collection
3. 解决打开Editor就闪退
打开Editor后,会自动编译一下Assembly,如果编译过程不通过,那就会闪退,然后再次打开Editor后还会这样,就形成了一个循环,Editor会一直开了退,退了开。这个时候,就需要打开项目中的随便一个Script脚本文件,在里面随便改一下,让他报错无法编译,然后再打开Editor,就可以操作了。
提示
在成功解决掉这些版本问题,项目可以正常运行后,需要将所有功能整体测试。有些新版本依赖库虽然编译可通过,但调用的结果可能和预期有一定差别。