跳到主要内容

自定义字体

游戏基于多语言或者统一 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)间切换确认效果。

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

英文:

中文: