文章目录

  • 一、需求目标
  • 二、解决方案
  • 1.创建 TextMeshPro 游戏物体对象
  • 2.找一个你喜欢的支持中文字体的文件
  • 3.生成 Unity 字体文件
  • 三、测试结果
  • Good Luck!



一、需求目标

在 Unity3D 开发项目时,时常需要用到 UI 中的 TextMeshPro 来显示文字,但是我们会发现使用 Unity 默认的文字字体显示中文时会出现乱码或者不显示的问题,这里提供一种方法帮助大家解决这个问题,可以方便快捷地在 TMP 中显示中文

unity ugui 输入中文 unity 改中文_Windows


二、解决方案

1.创建 TextMeshPro 游戏物体对象

unity ugui 输入中文 unity 改中文_unity ugui 输入中文_02

2.找一个你喜欢的支持中文字体的文件

  • 我比较常用的是 Windows 系统自带的 ‘黑体 常规’ 字体,该字体兼容大部分中文字符,如果大家有更好的字体也可以推荐给我
  • Windows 系统找到以下路径: C:\Windows\Fonts

unity ugui 输入中文 unity 改中文_解决方案_03

  • 我们可以看到在这个文件夹中,有已经装在系统中的各种字体文件,我们找到 ‘黑体 常规’ 字体

unity ugui 输入中文 unity 改中文_unity ugui 输入中文_04

  • ‘黑体 常规’ 字体文件复制到 Unity 工程目录 Assets 下,建议在Assets 目录下新建一个名为 Fonts
    的文件夹来存放我们需要用到的字体文件,保持我们工程文件存放的整洁有序
  • 之后我们就可以在 Unity 的 Project 栏目下看到我们的字体 ‘simhei’ 文件了

unity ugui 输入中文 unity 改中文_Windows_05

3.生成 Unity 字体文件

  • 我们选中 simhei 文件右键;
  • Create —> TextMeshPro —> Font Asset
  • 完成以上操作之后,我们可以在 Project 栏目中 Assets/Fonts 目录下生成了一个 ‘simhei SDF’ 文件

unity ugui 输入中文 unity 改中文_unity_06


unity ugui 输入中文 unity 改中文_unity ugui 输入中文_07

三、测试结果

  • 最后我们在创建的 TMP 文本框属性栏中,找到 ‘Font Asset’ 选项,点右边的小圆圈就可以找到我们创建的 ‘simhei SDF’ 文件
  • 可以发现原本显示为一个个方框的文本框字符如我们预期的一样显示了正常的中文字符

unity ugui 输入中文 unity 改中文_Windows_08

Good Luck!