记一次造字经历 - 用FontCreator解决Unity NGUI Label不同字体不同偏移问题

 

中文字体出现偏上

在一次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导入编辑过的字体,中文部分已经和原字体对齐了。
实际的情况,可以根据需要甚至对英文字体进行大小缩放。

因为我对字体的编辑并不熟,在此仅靠取巧来解决这个问题了。



作者:陈小霖GO
链接:https://www.jianshu.com/p/2977dc7bcdeb
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值