Unity TMP (TextMeshPro) 更新中文字符集

1 字符集缺失说明

使用TMP显示中文需要用到中文字体,推荐使用微软雅黑,也可以使用其他中文字体:
免费字体下载链接(资源来自于网络,侵删)

导入中文字体后,创建TMP字体,更换为中文字体后,仍然会有一部分中文显示不全的问题,这时候需要更新字符集。

原因是创建的TMP字体纹理包含的字符有限,无法包括所有的字体,这时候调整纹理大小,或者加入新的字符即可,最通用的办法就是加入所有的常用字符,使用txt文件更新TMP材质即可。

2 字体的字符表

正常导入一个字体,创建TMP字体后,可以看到右侧的字符表、象形文字表、可调整的象形文字表。

在这里插入图片描述

2.1 字符表更新模式:动态

初始为空,图集更新模式为动态,将随着各种字符的输入会动态的增加字符纹理到TMP材质纹理。

创建TMP文字对象,默认为 New Text …,更换字体为创建的中文字体后,这些字符将加入到TMP字符纹理,之后使用该字体输入的文字也会加入到纹理中。

需要注意的是:字体纹理的大小,项目使用的文字数量多时,应该适当扩大图集的大小。
点击TMP字体文件,在生成设置(Generation Setting)可以调整 纹理长宽属性(Atlas Width / Height )
在这里插入图片描述

此时纹理更新如下:

在这里插入图片描述
字符集更新如下:

在这里插入图片描述

2.2 字符表更新模式:静态

如果设置为静态,后输入的文字将停止更新到图集,只使用当前已有的字符集来作为字符的字典,如果字典中不存在的文字,不会有任何显示。

需要注意的是:此时图集的大小和其他属性是固定的,无法调整。

如下:当前字符集纹理不包含字符:123,所以显示为空!
在这里插入图片描述

3 更新字符集步骤

3.1 打开纹理更新面板

点击 TMP字体右上角 - Update Atlas Texture
在这里插入图片描述

3.1 导入文本文件

文本文件需要导入到unity才能被TMP识别,这里提供一个文本文件,
字符集下载链接

字符集选择:Character from file,调整字体图集大小:8192* 8192,
渲染模式默认即可,拖入文本文件点击生成字体纹理进行更新。

过程会持续一段时间

在这里插入图片描述

生成完毕后,点击 Save

在这里插入图片描述

可以看到,字体的纹理更新

在这里插入图片描述

3.3 关于警告处理

更新后,可能会出现警告:
- - Unable to add the requested character to font asset [MSYH SDF]'s atlas texture. Please make the texture [MSYH SDF Atlas] readable.
在这里插入图片描述

选择字体文件,展开内部贴图文件
在这里插入图片描述
点击右上角,右键单机Inspector选项卡,选择:Debug
稍后切换为:Normal,即可回到正常显示
在这里插入图片描述
勾选 IsReadable 属性,此时警告消失
在这里插入图片描述
此时可以切换为:Normal,回到正常显示

至此,TMP更新中文字符集完成,可以正常显示常用的中文字符!

4 修改TMP默认字体设置

在 TMP插件的Resources目录下,存在一个配置文件:TMP Settings

根据默认配置的路径,字体文件,每次创建TMP都会使用该配置的字体,修改这里的字体,将修改创建TMP对象时的默认字体。

注意:该配置只在Resources目录下生效!

拖入该中文字体,之后创建的TMP对象,使用的字体均为该中文字体。

在这里插入图片描述

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值