Unity TextMeshPro功能非常强大,但是我们用默认的字体格式却无法显示中文,必须把字体转换之后才能正常显示中文。
具体转换方法:
1、准备好字体,ttf或otf格式都可以,如:SOURCEHANSANSCN-NORMAL.OTF
2、准备好常用字体文本,可以搜索常用汉字字库,放到txt文本中。
3、字体文本和字体都拖到Unity场景中。
4、转换,在编辑器菜单点击Window->TextMeshPro->Font Asset Creator,进入转换页面。
转换页面如下图:
在上图中Source Font File,添加字体 ,如:SOURCEHANSANSCN-NORMAL.OTF,在Character File添加准备的汉字字库文本,如7000常用字.txt。其中Altas Resolution选择默认就行,但是选择的尺寸越大,字体的体积就越大,清晰度越高。但实际应用中,不能为了省内存而设置太低,太低字体就会很糊。
我的配置如下:
配置好后点击Generate Font Atlas,耐心等待转换。
转换完成后,我们会看到详细的转换结果:
此时我们不必急着关闭窗口,还需完成最后一步:保存转化的字体。
通过点击Save或Save as后,在弹窗中填写文件名或者保持默认,再点击保存,那么转化的字体就完成了。
此时,我们就可以在TextMeshPro组件中添加转化的字体并且正常显示中文了。