Unity UI中的优化操作可能称为一门艺术。固定的规则很少,而是需要根据不同的情况进行仔细分析。优化UI性能的关键在于平衡draw call和批处理的消耗。尽管有一些方法可以用来降低draw call或者批处理,但是复杂的UI需要作取舍。
按照惯例而言,开始优化总是从剖析开始。在优化UI之前,应该先弄清楚观察到的性能问题的准确原因。对于Unity UI的性能问题而言,主要有下面四种:
- 过度使用GPU的片元着色器(例如填充率过高造成)
- 重建Canvas batch消耗过多CPU时间
- 重建Canvas Batch的数目过多(过度重绘)
- 生成顶点消耗过多CPU时间(通常是文字引起的问题)
从原则上来说,Unity UI的性能应该是由发送给GPU的draw call数目决定,但是从实践上来讲,引发draw call问题的项目通常是因为过度填充引发的问题。
这篇教程会讨论Unity UI底层的基本概念,算法和代码部分,同时也会讨论常见的一些问题和对应的解决方案。教程分为五个部分:
- Unity UI基础,将会介绍Unity UI中经常用到的一些术语,讨论渲染UI的基础过程中的细节,包括几何结构批处理的构建过程。强烈建议从这章开始阅读。
- Unity UI剖析工具,会介绍开发者用到收集性能数据的一些工具。
- 填充率,画布和输入组件,会讨论改进Unity UI的画布和输入组件性能的一些方法。
- UI控件,这一章主要讨论针对UI中的Text,ScrollView和其他的组件的一些优化方法,这些方法具有针对性,并不是对其他的控件生效。
- 其他的技术和提示,这一章谈论了一些特殊的优化方法,包括一些基础的提示和工作中会用得到的奇技淫巧。
P.S.
Unity UI源码的托管地址:https://bitbucket.org/Unity-Technologies/
网友评论