【Unity 入门教程】三、如何设置自定义字体(解决中文乱码问题)
前言
如果你第一次使用 Unity 进行游戏开发时,遇到了中文乱码。恭喜你,遇到了开发时的第一个坑,本文将你解决如何设置自定义字体。
Unity TextMeshPro 默认字体不支持中文,如果你想让整个项目的 TMP Text / TextMeshProUGUI 对象都使用你自定义的中文字体,需要设置 默认 Font Asset。
一、准备工作
下载自定义字符集,可以本教材使用 google font 来进行指导下载。
- 访问 Google Fonts ,下载字符集的压缩包。
- 解压缩 zip 文件包,得到 .ttf 后缀的字体文件。
- 创建一个空的文件目录 Fonts,完整的文件路径为: root/Asstes/Fonts/。
二、生成 TMP Font Asset
- 选中导入的字体文件 → 右键 → Create → TextMeshPro → Font Asset
- Unity 会生成一个 TMP Font Asset,例如 SimHei SDF。
- 设置字符集:
- Custom Characters:输入你要显示的中文,例如牌库里所有卡牌名字
- Characters from Text:扫描一段文本生成字符集,也很方便
- 等待 Unity 生成字体纹理(SDF.asset 文件)。
三、设置为默认字体
- 先在顶部导航栏点击 Edit → Project Settins → TextMeshPro → Settings → 展开设置面板
- 将我们上一步生成的字体纹理(SDF.asset 文件) → Default Font Asset → 将字体纹理拖拽到设置面板
- 点击关闭,保存设置。
四、测试验证
- 在 Hierachy 面板下 → Canvas 右键 → UI → TextMeshPro → 创建一个文本组件
- 点击该文本组件 → Inspector 面板中 → Text Input → 输入“中文测试”
- 如果页面没有显示乱码,则说明我们设置成功了。