1.前置问题
- UGUI中Text设置的FontSize跟RectTransform的Height经常性的不一致,Height需要比FontSize大一些
- 不同的FontSize,需要的偏差值不同
- 不同字体,需要的偏差值也不同
2.项目中多语言用不同字体的问题
我们项目中,不同的语言使用的字体是不同的。但日常开发中大家只会关注中文,界面布局、组件参数的设置都是基于可见的中文文字做的。由于上面不同字体Height与FontSize偏差值不同的问题,导致游戏在切换语言后,出现两种问题:
- 文字消失:不勾选BestFit的地方,当某种字体需要的偏差值比中文的更大时,界面上文字就不可见了。
- 文字变大或变小:勾选BestFit的地方,文字会改变大小适配有限的空间,但由于每种字体需要的空间不同,就会出现大小不一致的问题。
3.使用FontCreator处理差异
- 字体相关概念的介绍:字体 | 字母剖析
- FontCreator Version 12
方案:将所有字体的 Metrics(度量) 跟 General(头部) 设置统一参数
面板入口
Metrics(度量)
General(头部)这里有两个
Calculate
按钮,可以点一下,它会根据字体的内容优化一下各项参数
General里Units per em:数值越大字体越小
处理多个字体的差异,可以无脑将两个页签的参数全部复制粘贴应用即可。我们是用中文做开发,那么将中文字体的参数作为标准值,应用到其他字体。
上面方案是可以消除差异,不过文字显示出来的大小就不对了。感觉上可以通过其他参数修正过来,后面找到再记录吧。目前可以通过粗暴的调整Metrics里的Win Ascent、Win Descent、Ascender、Descender几个参数解决问题。
网友评论