在项目制作过程中遇到了个很蛋疼的问题——场景加载卡死。这个问题让项目一个同学查了好久都没真正查出来,各种纠结。而且这bug还不是必现的,有时候抽风一下在某台电脑能重现,有时候又一点问题都没有,隔三差五的冒出来刷一点存在感。
后面安排我一起来查这个问题,可能是那天运气比较好吧,搞了一下午,突然间发现有个gameObject的配置文件数据有很大的问题,它的scale的y值竟然高达e^21 !!!虽然我们项目做的是编辑器,能够对物体进行放大缩小操作,不过这个值绝对也是不正常的,是相关功能的程序员没做最值保底,然后某个操作引起的数值异常并保存到了配置文件中。我们把这个数值改回到正常值后,场景卡死问题果真就没再出现过了。
不过故事还没结束,大概过了半个月,在发版本的前一天下午,突然出现了摄像机在loading的时候疯狂往下掉的问题,碰撞设置一直没改过,而且也确认了没问题,各种可能的设置也都尝试过了,依然无法解决。
最后尝试通过二分法来删除副本配置(大几百个对象),一步步终于定位到了某个gameObject,加载完后在Unity的Hierarchy中双击它,竟然无法显示!再看它的Inspector界面大致如下图: