在NGUI中,UILabel里的CacheFontForText耗时一直是个大问题
CacheFontForText是在UILabel在渲染时,在对应的字体的FontTexture找不到需要渲染的字符时,就会重新生成FontTexture,FontTexture尺寸越大,重新生成这张FontTexture就越耗时。
网上已经有一些解决方案了,大多数是一开始就将FontTexture撑大,减少CacheFontForText的频率,但这种解决方案有个缺点,一旦在这张比较大的FontTexture里找不到对应的字符时,需要重建的时间反而更大,也就是说,从频繁的小卡变成了偶尔一次的大卡,特别是在频繁打开UI或者聊天内容刷新比较频繁时。
这里,我们另辟蹊径,在不撑大FontTexture的前提下,减少触发概率。
解决方案其实已经有了,NGUI已经提供了静态字体,那我们就将静态字体利用彻底点
1、准备字体
从网上下载一个字体文件,这个解决方案里,必须保证静态字体和动态字体无差别,也就是最终渲染的时候,看不出来任何痕迹。
这里我从系统字体里拷了一个华文细黑做为素材