- Creator 版本:2.0.2 2.0.4 2.0.5
- 目标平台:(Web / iOS / Android / 模拟器) Android
- 详细报错信息,包含调用堆栈:
- 重现方式:
- 之前哪个版本是正常的(可选):
- 手机型号(可选):
- 手机浏览器(可选):
- 编辑器操作系统(可选):
- 编辑器之前是否有其它报错(可选):
偶现 Bug 请提供
- 出现概率:100%
- 额外线索:(场景节点规模 / 项目资源规模等)
我们游戏demo开发完成后发现一个严重问题,那就是原生平台帧数非常低.但是web版正常.
相信很多人都一样遇到这种问题.
因为只是一些简单的ui操作但是android得帧数只有30-40帧 而且!打开的界面越多帧数越低.
首先,我并不相信是js或者引擎性能问题,因为这个事实一些简单的界面操作 不至于帧数这么低.
而且界面打开过的越多帧数越低,我怀疑是代码问题没有隐藏界面或者释放资源之类的问题.但是web版缺没有任何问题,感到非常奇怪.
然后通过观察发现,界面关闭后fps并没有降低,理论上界面关闭active=false之后不会再影响性能问题.但是却影响了.
确定了是界面关闭的问题后开始确定原因.
于是开始排查工作,先锁定了可能会导致问题的地方:界面都是已预制体形式生成的.
1.节点的active和透明度 无效
2.节点的size 无效
3.预制体优化策略
4.label的xxxx ttf字体
游戏里面用了两种字体:A.fft 9m大小 和 B.fft 4m大小
最终算是确认了字体问题,把label的字体B 去掉后一切都正常了 游戏稳定60帧左右
为什么说算是确认了是字体问题. 因为测试过程中发现就算字体不修改预制体得优化策略也对帧数影响很大.
因为解决这个问题后就直接把B字体直接全都去掉了,刚好游戏里面不打算用这个字体.
等去掉之后再来测试这些问题 发现无法完全重现帧数降低bug,又没精力深究这个问题,只能把锅先甩给字体问题了.
以上希望能给其他在原生平台上遇到运行帧数问题低提供一个参考,可以尝试下解决方案.
有用的就两点:1.字体问题,2:预制体的优化策略.
在这个问题里,我有个疑问:打开的节点设置为active=false 为什么还会影响fps,引擎在底层应该还在做什么事情导致虽然关闭了但是fps并没有下降.,这里无法找到原因.
也希望官方能解答下是否会存在这种问题
.ps 我的另外一个项目存在一个bug:web版某毛笔字体显示正常,但是原生平台无法显示.显示的是系统字体