这一章节专门针对UI Controls进行优化。大部分的UI Controls都对性能表现有一定的影响。
UI Text(UI文本)
Unity内置的Text组件可以在UI显示格栅化的文本。以下是一些常需要关注的与性能相关的因素,在添加文字到UI的时候,事实上被渲染成多个多边形。文本文字作为独立的片面进行渲染,每个字符都是一个片面,这些多边形有很多空白的部分,在放置文本时很容易使其无意中破坏其他元素的批处理。
Text mesh rebuild(文本网格重建)
每次的文本变化都需要重新计算用于显示实际文本的多边形,在一个text component或者其他子物体被禁用或者重新启用的时候,也会进行重新计算。
这个过程对于显示大量文本的UI会有很大问题,比如排行版和统计面板。最常见的打开和关闭UI这些会导致意外的帧率问题。
Dynamic fonts and font atlases(动态字体和图集)
在字符集很大或者运行时字符使用不确定时,可以用动态字体来显示文本。在Unity中组件中的文本经根据使用字符进行创建图集。
每个不同Font对象将保留自己的纹理图集,即使它与另一种字体在同一字体系列中。例如,在一个控件上使用Arial文本,在另一个控件上调用这个本文使用的也是Arial Bold,但是Unity将保留两个纹理图集。
从性能分析来看,重要的是理解Unity UI为每个不同的大小、风格和字符维护一个字形在字体图集中。如果一个UI包含两个字体组件,都显示字符'A':
- 如果两个组件使用相同大小、字体图集那么它们将使用同一个字形。
- 如果两个组件使用不同