48. 2023-02-19周总结

  1. Timeline裁剪问题
  2. 性能优化
  3. 点击降帧率问题
  4. 升级头条Ohayoo SDK编译报错问题
  5. 升级xcode导致ios 16崩溃问题

Timeline裁剪问题

PlayableAsset returned a null Playable on Instantiate报错上周定位到肯定是因为裁剪导致的,但是link.xml加了<assembly fullname = "UnityEngine.Timeline" preserve = "all"/>还是报错。

最后在这个文档的最后面发现是因为Unity改了Timeline的Assembly名字了,改成Unity.Timeline问题解决。

性能优化问题

上周通过修改特效产生的粒子数做了一版优化,但是单个粒子优化得到提升,最终放在一起的效果还是不太理想。

这周进一步进行优化,最终发现特效使用的shader有严重的性能问题,粒子数很少的情况下,当两个特效放在一起播放就会出现掉帧现象。

阅读特效使用的shader之后,发现他是一个大杂烩,功能很多,代码也很多,而且没有用到Shader Feature,导致只是用到其中一个简单的功能,所有操作都会计算一遍。

最终重写了对这个shader进行重写,删除大部分用不到的功能,并在此基础上用到了Shader Feature,进一步降低了只用到简单功能的情况下的计算量。

重写之后整体性能得到了很大的提升,由之前的15帧升到了40帧。

点击降帧率问题

在测试性能优化的时候发现了个奇怪的问题,我的测试机(某星)在点击的时候就会降帧率,点击很快的情况下帧率甚至可以降到个位数。一开始以为我们游戏哪里有问题,但是即使我用了空场景了,问题依旧,而且只在这台机器上会出现这个问题。现象比较奇怪,暂时不知道原因。

升级头条Ohayoo SDK编译报错问题

头条那边要求升级Ohayoo SDK版本到27xx版本。

Android升级过程没有太大问题,但是ios编译不通过,报link错误,找不到很多函数。最后将xcode从13.x升级到14.x之后问题解决

升级xcode导致ios 16崩溃问题

因为升级了xcode,导致我们另外一个项目编译出来之后在ios 16直接启动就崩溃了。报错日志:

1
Sending event: com.apple.stability.crash {"appVersion":"1.3.3","bundleID":"com.moutain.sea.restaurant.ios","bundleVersion":"202302171410","exceptionCodes":"3405SIGKILL00x0000000000000d4d, 0x0000000000000000(\n    \"INVALID_OPTIONS\"\n)mach_msg_trap() called with msgh_id 3405. The trap is not allowed on this platform.GUARD_TYPE_MACH_PORTEXC_GUARD(\n    3405,\n    0\n)","incidentID":"B2FADA2B-BBB3-4627-8C41-CA595B39810B","logwritten":1,"process":"ProductName","terminationReasonExceptionCode":"0x2000000300000d4d","terminationReasonNamespace":"GUARD"}

搜资料之后原因可能是sdk问题:

1
Due to one internal third party SDK which was non-supportive for iOS 16.

因为这个项目也接了头条sdk(还没升级过),所以严重怀疑这个sdk有问题。升级了sdk之后,问题果然得到了修复。