当前位置: 首页 > article >正文

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

TMP更新中文字符集

    • 1 字符集缺失说明
    • 2 字体的字符表
      • 2.1 字符表更新模式:动态
      • 2.2 字符表更新模式:静态
    • 3 更新字符集步骤
      • 3.1 打开纹理更新面板
      • 3.1 导入文本文件
      • 3.3 关于警告处理
    • 4 修改TMP默认字体设置

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对象,使用的字体均为该中文字体。

在这里插入图片描述


http://www.kler.cn/a/294127.html

相关文章:

  • 【MySQL 保姆级教学】事务的自动提交和手动提交(重点)--上(13)
  • fastadmin多个表crud连表操作步骤
  • docker构建jdk11
  • 2024 年 Apifox 和 Postman 对比介绍详细版
  • C++中的栈(Stack)和堆(Heap)
  • 随手记:简单实现纯前端文件导出(XLSX)
  • IDEA取消自动选择光标所在行
  • go面试:说一下 GMP 模型的原理
  • 关于IDEA的快捷键不能使用的原因
  • jQuery基础——Ajax
  • 如何免费将视频转换为 MP4?将视频转换为 MP4 的 5 种方法
  • Linux——redis主从复制、哨兵模式
  • Java程序分析工具
  • Python 操作大数据使用 Hadoop
  • Unity3D在2D游戏中获取触屏物体的方法
  • 做运营,发布时间很重要
  • Android Studio更新代码可正常运行但IDE报红
  • 【保姆级教程】使用 PyTorch 自定义卷积神经网络(CNN) 实现图像分类、训练验证、预测全流程【附数据集与源码】
  • 【量化部署】AWQ in MLSys 2024
  • 如何查找 Docker 容器的 IP 地址 ?
  • #include <iostream>介绍
  • Linux日志-journal日志
  • 【uni-app】通过 HBuilderX 创建 uni-app vue3项目
  • 2024年架构设计师论文-“模型驱动架构设计方法及其应用”
  • 【MATLAB】矩阵的合并
  • 编程技术开发105本经典书籍推荐分享