第一次升级的时候,系统会问你是否自动升级现有接口。我手欠就选择否,结果惨了,一大堆错误,我还真一个个跳出来解决掉了,看起来就是接口干净了,删除了很多余的。第二次我学乖了,再次升级的时候选择自动升级接口,完美的都给自动搞定了。
其实升级的主要目的是需要支持64位ios系统,这时候需要选择IL2CPP的生成方法,这个不能完全保证之前能正确编译执行的东西再IL2CPP中也能正确执行,多少有一些不一样的地方,还好Unity3D社区给力,仔细搜索下就能找到。我们遇到了这个问题 Sina Visitor System ,找到了相应的解决办法,但是我不确定你是否会遇到和我们不一样的问题。
渲染的地方似乎有一些不同,我们之前在Unity4时候是没有问题的,但在Unity5的时候,在某些安卓机器上发现会出现雪花的错误,后来发现是最里面的一个摄像机必须要清理背景,不能选择Don‘t Clear。
升级前做好项目备份。如果用了版本管理,最好重新建一个代码库,别把5的项目Commit到4上,到时候回滚很麻烦。常见错误:一个内置的摄像机脚本,有个preview变量报错,把它改成 _preview即可。很多API的命名错误可以用Assets / Run API Updater解决。Shader会变,尤其是一些野生的从第三方拿来用的Shader。这个没办法,只能逐个找类似的替换。真正让人崩溃的是物理引擎,尤其是Joint相关的东西。这种大多发生的车辆类产品里。这个只能逐个去击破。把Joint的关节逐个拆分,找出问题所在。5.0最大的改动是Joint的Connect Anchor都需要重新设置。其它的想到再补充吧。感觉5.2还不太稳定,按照Unity的尿性,起码等到5.5才能真正稳定下来,但那个时候6估计也快发布了。
另外一些坑:
1、升Unity5有不少API改了,有的插件没事,不过动画那块的插件基本废掉了T T
2、渲染方面,现在知道一个alpha blend 会锁住alpha通道,试了好久没效果。。
[Unity5]how to change alpha by using shader. 这里给出了解决方法 主要是下面那句最后要加alpha:blend