unity 模型像素化 unity像素字体_中文字体


英文字符量少,字体自己做都可以,但中文字符太多,只能找现成的字体用了。目前了解到中易宋体(下文简称“中易”)和文泉驿正黑(下文简称“文泉驿”)都包含点阵中文字体。下面对比一下这两个字体各方面的情况。

  • 中易授权问题搞不清楚(发了邮件没收到回复),而文泉驿的许可证是“GPL v2 license with font embedding exception”,由于追加了 FE 条款所以可放心使用。
  • 在游戏中主要会使用 12 像素的中文字体,这个尺寸下中易里的中文字符像素大小为 12x11,而文泉驿里的中文字符像素大小为 12x12,由于中易水平方向是奇数个像素,更适合存在大量左右对称字形的中文字符设计。此外个人认为中易的中文点阵设计本来就比文泉驿好看一点。
  • 但文泉驿是非等宽字体,非中文字符的设计比中易好很多。

总的来讲,如果你主要想用来显示中文、并且能搞定中易的授权问题,那么就选择中易;否则可以选择文泉驿(注意也要遵守许可证)。我最终选择了文泉驿。

文泉驿官方下载的字体文件是 .ttc 类型(字体集合,包含正黑、等宽正黑和我们需要的点阵正黑),由于 Unity 暂不支持字体集合的导入,于是我找到了一个字体集合分割工具,可以把 .ttc 分割成多个 .ttf。

  1. 把点阵正黑的 .ttf 文件导入 Unity,导入设置中,Font Size 填 13(因为文泉驿 13 像素时中文才是 12 像素……),Rendering Mode 选 Hinted Raster(像素对齐且无平滑半透明的渲染),Character 不能选择 Dynamic(因为我们接下来需要导出字符图集),其他选项保留默认设置即可。
  2. 点导入面板右上角的齿轮图标,选择 Create Editable Copy,这样就创建了一个可以直接编辑的 Unity 字体格式了,一个 Unity 字体包含字符图集、材质、字体资源三个部分。
  3. 修改字符图集的导入设置,Texture Type 选择 Default,取消选择 Generate Mip Maps,Filter Mode 选 Point,最后留意 Max Size 不能小于实际宽或高,否则像素图会被缩小。
  4. 用文本编辑器打开字体资源文件(.fontsettings),m_LineSpacing 改为 18(默认行距),m_FontSize 改为 12(字体的设计大小),然后将 m_Ascent、m_Descent 分别改为 13 和 -3(保证中文在垂直方向可以正确对齐)。


unity 模型像素化 unity像素字体_unity 文字滚动显示_02

中英日对比


总体来讲,文泉驿的质量只能算能接受。如果你知道有更好的选择,请在评论里告诉我。