中文字体出现偏上
在一次Unity开发中,我们尝试使用一款新的字体。但是直接把字体替换掉后,新字体的中文部分是向上偏移一点点的:
左边是旧字体;右边是新字体,中文部分细微向上偏移 但是英文部分的基线是一致的!可以看到英文部分虽然更大,但是字体的基线是一致的;这里大概估计,基线一致的情况下,出问题的就是因为这只中文字体的中文部分确实是偏上了!
怎么办?总不可能把所有的UILabel全部调整一次坐标吧?
因此——
对字体进行修改!
使用FontCreator编辑字体
FontCreator我们需要用到FontCreator软件对字体进行编辑,一个功能超丰富的字体编辑器,请自行百度FontCreator。
打开FontCreator,把字体拖入软件,就可以开始进行编辑了。我们只需简单的两步,来调整中文字体。
第一步:重新计算度量范围
重新计算度量范围:格式->字体设置->度量->计算进入菜单,格式->字体设置->度量->计算,让FontCreator重新计算一系列适当的值。
因为我不懂字体,这一步也是懵的。但是光做这一步,就可以略微调整Unity中的显示,偏移会减轻。
第二步:对中文字符偏移
选中所有中文在FontCreator中选中所有的中文。Unicode编码中,中文范围是4E00-9FA5。
点击一下uni4E00的字符,然后拉动滚动条,找到到9FA5字符(先别点击),按住Shift键,点击uni9FA5的字符。这样就可以选中所有的中文了。
实际情况中,发现部分字体不带uniXXYY的名称,可以右键,属性,映射标签页的“值”里找到unicode值。
“工具->字形转换”,调整中文字体的位置点选菜单,工具->字形转换,从左边Outlines里选择Move,并且填入参数水平0,垂直-100,也就是让字体向下移动100个单位(具体数值根据实际情况改写),点击确定。然后保存字体!
最终效果
“度量计算”+“中文向下偏移100”重新回到Unity导入编辑过的字体,中文部分已经和原字体对齐了。
实际的情况,可以根据需要甚至对英文字体进行大小缩放。
因为我对字体的编辑并不熟,在此仅靠取巧来解决这个问题了。
网友评论