“Cocos不能兼容iPhone12这个机型吗?”随着周老板的话,发来的还有一段视频。
视频里的游戏画面全部错乱了,UI被3D部分挡在底下,然后场景上的跑道出现了重叠。看到临近上线,还能出现这个问题,真的是让我的心头一凉。
此时距离这个项目开始的日子已经过去了整整两个月了,按照最初的合同,预定是这个项目应该在十一月一号就正式上线的。而现在已经比我预期的时间超过了太多太多,而且工作量也是比我的预期增加了太多太多。
在交付完第一个版本后,周老板那边就开始了测试,在测试过程中反馈一些Bug这点无可厚非,本来就在我的职责内。但是同时还追加了许多新的需求,这些需求你说它不合理吧也不对,因为按照我的理解来说,这些需求确实是合情合理的,应该加上这些东西,或者改成这个样子,但是累计的数量多了,导致我的工作量也增多了不少。而且这些需求,也很分散,大概一周提一两个,这就导致我得时刻关注这个项目。也很让人疲惫不堪。
正常来说,如果是一个全职的工作流程,这些情况都是游戏开发中非常普遍存在的反复,这个没什么好抱怨的,但是按照外包的模式来做的话,我是觉得自己血亏的。拿到的报酬至少得再增加一倍,我的心理才能平衡。也怪我第一次接外包没什么经验,就当花钱买教训了,而且合同都签完了,只能是亏本赚口碑了。
出现问题的是小美的iPhone12。我抓紧买完菜回家,和小美拉了一个单独的视频会议,让她现场演示给我看,幸好我在提供测试版本的时候,把vConsole打包进去了,所以请她打开控制台,让我看看Log。
Log里没有输出任何的报错信息,而且和服务器的消息请求全部都是正常打印出来了。也就是说不是代码崩溃导致的问题,整个游戏都是在正常的运行的,只是渲染错乱了。
我第一时间怀疑的是微信的版本太老了,但是检查了她的微信版本,是最新的版本。
“你们办公室还有谁是iPhone12的手机吗?可以看看他的手机能正常运行吗?”
等了一会,小美拿了另一个iPhone12手机过来,这台手机上运行是好的。我仔细比较了一下两台手机,发现他们的微信版本都是相同的,只是小美的手机是ios 15.4.1的版本,而好的手机是 ios 18。
这个时候,小美又反馈了一个新的信息。不光是微信浏览器里运行异常,在 Safari 浏览器打开也是如此。
听到这里,我顿时有了一个推断,这个不是微信自己的问题,应该是这个版本的苹果浏览器的问题啊。于是我又给小美发了一个我上架store的试玩游戏,她反馈运行是正常的。这就奇了怪咧。
我再次仔细观察小美发的渲染错乱的视频,发现画面错乱的原因似乎是第一个相机的Clear Flags根本没起作用。导致每一帧的画面都重叠到了前一个画面上,所以才会出现场景上有两个跑道的感觉。想到这里,我的心中有了一些眉目。试玩游戏是正常的,而现在的游戏不正常。他们之间存在两个不同。一个是引擎版本号的不同,一个是相机的设置不同。
试玩游戏里是创建默认的2个相机。
3D相机——Clear Flags (SkyBox)
Canvas相机 —— Clear Flags (DEPTH_ONLY)
而现在的游戏里有三个相机。
Canvas1 相机 —— Clear Flags ( SOLID_COLOR)
3D相机 —— Clear Flags (DONT_CLEAR)
Canvas2 相机 —— Clear Flags (DEPTH_ONLY)
因为SkyBox的效果不好,所以我在这个项目里,使用了一个背景层的Canvas1,上边放了一些精灵来显示蓝天白云。从现在的表现来看,Canvas1相机的 Clear Flags 没有起作用。
于是我就先将现在的游戏的相机的Canvas1删除了,改成试玩游戏里类似相机设置,重新打了包,请小美再实验一下。这下子估计稳了,我暗想。
“还是一样的,画面会错乱。”小美又录了视频给我看。
于是我又发了试玩游戏《兄弟向前冲》给小美,这个游戏的相机设置也是三层,但是只是引擎版本不同。如果《兄弟向前冲》也运行正常,那就可以断定是 3.8.7 的引擎在 ios 15.4.1上运行有问题咯。
“没法打开哎。”小美发来了一张截图,Safari 浏览器上显示的是“你确定要下载index.html吗?”小美的 Safari 浏览器行为也非常奇怪。很多网址它都会识别成一个要下载的文件,而别的 ios 18就没有这个问题。
这个问题排查到这里,已经进入了一个死胡同。我只得表示无能为力了,这个属于 ios 的bug了。周老板也表示理解,先放下这个问题,不要耽误上线。
在这里,我想问一下论坛的朋友,你们有什么思路吗?
往期回顾:
追文更新: