Unity3D 在 UI TextMeshPro (TMP) 中显示中文


一、需求目标

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


二、解决方案

1.创建 TextMeshPro 游戏物体对象

在这里插入图片描述

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

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

  • Windows 系统找到以下路径: C:\Windows\Fonts

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

3.生成 Unity 字体文件

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

在这里插入图片描述
在这里插入图片描述

三、测试结果

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

在这里插入图片描述

Good Luck!

猜你喜欢

转载自blog.csdn.net/weixin_46992165/article/details/126296864