美文网首页unity优化unity3d游戏开发Unity教程合集
记一次造字经历 - 用FontCreator解决Unity NG

记一次造字经历 - 用FontCreator解决Unity NG

作者: 陈凯利 | 来源:发表于2016-05-26 14:47 被阅读1680次

    中文字体出现偏上

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

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

    相关文章

      网友评论

      • 筱晴:不错不错,已经打赏了,再接再厉!
        陈凯利:@筱晴 喜出望外!

      本文标题:记一次造字经历 - 用FontCreator解决Unity NG

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