Files
obsidian-notes/3Resources/游戏开发/性能优化/性能优化-面试.md
zzzisfunnyboy 76a4f2a746 7.24 家
2025-07-24 00:13:02 +08:00

31 lines
1.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

- UGUI
- 降低UI刷新的频次
- HUD刷新
- 可以在代码逻辑中做一定的延迟
- 颜色不同会导致无法合批
- 可以用MaterialPropertyBlock解决
- Canvas下**网格的变化**会引起**Canvas.BuildBatch的调用**
- 解決
- 減少Canvas下网格顶点的变换例如UI元素的**Transform变动**
- FGUI的处理方式
- 自动合并相邻组件
- UGUI无法做到的原因是因为依赖底层的动态合并以及静态合并但FGUI只处理UI
- 顶点数据重组
- 将多个组件的顶点UV颜色数据合并到单个顶点缓冲区一次性提交到GPU
- 文本处理:
- 将某几个字的纹理和图片的纹理打到同一个图集
- 动态变更字体的时候,往图集里更新新的字体,避免发生材质重建
- 颗粒度不同
- UGUI的Canvas下元素被设置Dirty后会导致整个CanvasReBuild
- FGUI的局部更新更高效
- TextMeshPro
-
- 合并批次
- 问题
- **无法合批**的情况
- 不同Canvas|图集交叉|深度交叉
- 同一个Canvas同一图集深度但无法合批的情况
- **动态合批未通过超过顶点限制缩放不为1**
- 对于Alpha为0的Image需要勾选其CanvasRender组件上的Cull Transparent Mesh选项否则依然会产生DrawCall且容易打断合批。
-