美文网首页
[Unity] UGUI加粗字体小记

[Unity] UGUI加粗字体小记

作者: _Walker__ | 来源:发表于2020-03-29 10:11 被阅读0次

    参考文章:
    UWA:ugui 字体加粗后android真机并没有加粗而且加宽导致文字重叠

    不同字体无法合批

    前段时间看一个新系统的UI DrawCall时,发现有几个同Depth的粗体字跟非粗体字没有合批,感觉非常奇怪。然后看了下Text组件的设置,发现这位同学做粗体效果时拖用了msyhbd的字体,而普通字用的msyh字体。

    这里说明下两个字体的关系,msyh是不支持粗体的字库,而msyhbd就是msyh缺少的粗体字库。我们做粗体效果,都是Text组件的Font Style选项设置为Bold。在Unity5.4版本里,只有msyh字体的话在Android设备上粗体效果会显示错乱。因此,我们在项目里又加了msyhbd修复这一问题(解决方案源自上面的参考文章)。顺便一提,Unity2018.4中没有msyhbd也能保证Android设备粗体效果正常(亲测)。

    针对上面的情况,做了个小实验(U5.4环境),结果记录如下

    Text字体 设置(FontStyle) 效果 能否合批
    msyh Normal 普通
    msyh Bold 粗体
    msyhbd Normal 粗体 不能
    msyhbd Bold 粗体 不能

    上面表格中“能否合批”是指,同Depth的所有Text组件能否合批。当然,上面表格,跟前面这句话都不够严谨。在msyh + Bold设置能满足效果的情况下,所有的Text组件只会使用msyh一个字体,自然它能够合批。

    最终的一个小结论:直接引用同一个字体的Text是可以合批的,跟它实际内容来源于哪个字体无关。
    最终内容都来自msyhbd的情况下,使用Bold选项能保证合批,我们猜测是fallback机制的功劳。

    相关文章

      网友评论

          本文标题:[Unity] UGUI加粗字体小记

          本文链接:https://www.haomeiwen.com/subject/ibryuhtx.html