67. 2023-07-02周总结

  1. 篮球项目转小程序
  2. Stretched Billboard在UGUI下不显示问题
  3. 华为手机诡异问题

1. 篮球项目转小程序

这周主要用Memory Profiler对内存进行了分析,发现了几个内存现象。

  • 首场景的内存受到Resources管理,虽然Destory了,但是内存不会释放,需要调用Resource.UnloadUnusedAssets才能释放
  • 摄像机会自动创建一个RenderTexture,大小跟屏幕分辨率一样,UGUI挂载的UI摄像机也会创建,但是如果我把UGUI挂载的摄像机删除,会出现字体模糊问题,这个暂时不知道原因。另外因为我们用到的摄像机都是通过RenderTexture挂载到UI上面的,所以不希望摄像机创建自己的RenderTexture,但是还没找到如何关闭。
  • 字体模糊问题,当UGUI的Canvas使用Screen Space - Overlay的时候TMP字体在刚开始显示好的,后面切换下UI就会导致字体模糊,这个还不知道原因
  • TextMeshPro内存
    TextMeshPro太费内存了,对于小游戏这块对内存比较敏感的场景来说还是不太适用,但是也没办法改了,只能是修改TMP的参数,降低下质量来节约内存。

小程序优化

  1. 贴图内存,RenderTexture,摄像机会初始化时候创建RenderTexture,UI摄像机也会
  2. TextMeshPro内存
  3. 字体模糊

2. Stretched Billboard在UGUI下不显示问题

特效做了一个粒子,用到了Stretched Billboard,但是放在UGUI下面就无法显示,搜了下相关资料,好像是Unity的Bug,需要把Y从0改成0.001就能显示,但是效果会跟3D下的不太一样。后面特效换种方式做了,不知道升级Unity版本能不能解决这个问题。

3. 华为手机诡异问题

项目运行在华为nova 9 SE,系统版本Harmony OS 3.0.0的时候,放在那不动,几分钟就会出现卡帧现象,即使是最简单的登录界面也会这样。用Unity Profiler了下,发现耗时都是在等待GPU渲染。

另外adb查看手机日志也没找到有用的,就是系统每帧调用的addLayerName, tid:16262,间隔时间越来越长。

这个问题比较诡异,因为能稳定复现,所以准备从0开始慢慢加游戏内容,看哪一步问题导致的。