在Unity中使用TextMeshPro显示中文时,有时会遇到无法显示或者个别文字无法正常显示的问题,怎么解决呢?
1、TextMeshPro 如何添加中文字体
在电脑的 C:\WINDOWS\Fonts 文件找一个中文字体,或者搜索 .ttf 格式字体文件 (如黑体字体文件:simhei.ttf)
2、将中文字体文件导入到Unity中
在Unity的 Assets 下新建一个文件夹 Fonts,将上一步的字体文件拖动到此文件夹中,即可将此字体文件导入到Unity。
3、创建字体
在刚导入的字体文件中点鼠标右键—创建(create)—TextMeshPro—字体资产(Font Assets),即可创建为Unity可用的字体。
创建完后 Fonts文件夹中会多出一个蓝色图标的字体文件,如下图
4、创建3D文本对象
在场景 层级(Hierarchy)窗口中,鼠标右键选择 3D对象—文本-TextMeshPro
5、输入中文,并调整到合适的位置,就可以看到中文了
6、如果文本是程序运行时动态变化的,注意观察文字,偶尔会发现,有个别字没显示出来。此时我们可以手工将一些常用字生成为字体资源。
在Fonts文件夹中创建一个.txt格式文件,将所有需要显示的文字复制进去
7、点击窗口菜单—TextMeshPro—字体资源创建工具。
8、此时弹出以下字体资源创建界面
9、Source Font File选择我们前面导入的字体(SIMHEI)、Character File选择我们导入的“常用文本”文件。
10、点击 “Generate Font Atlas”,稍等片刻即可生成字体资源,其中Atlas Resolution的两个值可以控制生成的文件大小,数值越大越清晰,生成的文件也越大。
11、点击保存即可使用此字体文件。如果发现有哪个字还是显示不出来,在前面的“常用文本”中增加无法显示的字,再次生成覆盖之前的文件即可。这里我们保存文件名为ABC SDF文件。
12、修改前面场景中文字字体看一下,新字体也可正常显示文本。
至此结束,当遇到无法显示的文字时,可以试一下。