跳到主要内容

自定义字体

游戏基于多语言或者统一 UI 设计的角度出发,要求能够更改 LEVEL INFINITE PASS 的字体为游戏字体,这里介绍设置方法。

字体

Unity 默认不提供字体资源文件,在打开 LI PASS 界面前调用 SetPriorityFont 接口更换字体。如果未特别指定,默认使用 Unity Arial 字体。

注意

Unity 使用的 Arial 字体在 iOS 上无法正常显示泰语,详见 Unity Issue Tracker 上的相关主题。
如果需要显示泰语,建议使用其他专门的泰语字体资源。有关配置的更多详情,请参见 多语言字体

验收

在编辑器或实体设备上运行游戏,验证字体是否已如预期更改。

例如,默认字体 Lato 已更新为 Tencent Sans。

Lato:

Tencent Sans:

多语⾔字体

为解决不同字符编码中字体无法正确显示的问题,在 FontName 字段中为导入的字体添加默认字体。

FontNames 格式:FontName1,FontName2,FontName3

Image: Unity Font

更多信息,请参见 Font assets

当 Unity 尝试使用动态字体渲染文本但无法找到字体时(因为未选择 Include Font Data,并且用户计算机上未安装该字体),或者字体不包含请求的字形时(例如尝试使用拉丁字体在东亚脚本中渲染文本时,或者使用粗体/斜体字形文本时),它将尝试 Font Names 字段中列出的每种字体,从而查看是否可以找到与项目中的字体名称匹配的字体(包含字体数据)或者用户计算机上安装的字体是否具有请求的字形。如果找不到列出的后备字体或者这些字体不具有所请求的字形,Unity 将回退到硬编码的全局后备字体列表,其中包含当前运行时平台上通常安装的各种国际字体。

—— Unity Documentation

多语⾔字体验收

在编辑器或实体设备上运行游戏,验证字体是否已如预期更改。

如果游戏只使用一种字体,可直接在两种语言之间切换,测试 UI 界面的多语言适配。

如果游戏为不同语言配置了不同的字体,建议在使用不同字体的语言之间切换,以进行验收测试。
例如,英文和中文使用字体A,而泰文则使用了字体B。验收测试时可在英文(字体A)与泰文(字体B)间切换确认效果。

以下为同一字体适配于中英文的例子:

英文:

中文: