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.mzph.cn/news/878817.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据预处理与协同过滤推荐算法——从数据清洗到个性化电影推荐

推荐系统在现代应用中占据了重要地位,尤其在电影、音乐等个性化内容推荐中广泛使用。本文将介绍如何使用数据预处理、特征工程以及多种推荐算法(包括协同过滤、基于内容的推荐、混合推荐等)来实现电影推荐系统。通过Pandas、Scikit-learn、Te…

如何编写Linux PCI设备驱动器 之一

如何编写Linux PCI设备驱动器 之一 PCI寻址PCI驱动器使用的APIpci_register_driver()pci_driver结构pci_device_id结构 如何查找PCI设备存取PCI配置空间读配置空间APIs写配置空间APIswhere的常量值共用部分类型0类型1 PCI总线通过使用比ISA更高的时钟速率来实现更好的性能&…

etcdctl defrag 剔除、添加etcd节点

零、准备工作 find / -name etcdctl cp /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/12/fs/usr/local/bin/etcdctl /usr/local/bin/etcdctlalias ec"etcdctl --endpointshttps://127.0.0.1:2379 --cacert /etc/kubernetes/pki/etcd/ca.crt --…

【2024】MySQL库表基本操作

目录 登录数据库创建数据库直接创建数据库使用IF NOT EXISTS方式创建查看数据库信息删除数据库 数据表操作创建数据表增加新字段插入数据删除数据表 登录数据库 首先登录到数据库:输入用户名和密码登录到数据库内部 [rootlocalhost ~]# mysql -uroot -p Enter pas…

Locksupport凭证的底层原理

LockSupport的凭证(通常称为“许可”或“permit”)的底层原理主要涉及到Java的Unsafe类以及系统级的线程同步机制。LockSupport是Java 6(JSR166-JUC)引入的一个类,提供了基本的线程同步原语,其核心功能是通…

如何利用ChatGPT提升学术论文讨论部分的撰写质量和效率

大家好,感谢关注。我是七哥,一个在高校里不务正业,折腾学术科研AI实操的学术人。关于使用ChatGPT等AI学术科研的相关问题可以和作者七哥(yida985)交流,多多交流,相互成就,共同进步,为大家带来最酷最有效的智能AI学术科研写作攻略。经过数月爆肝,终于完成学术AI使用教…

利用正则表达式从字符串中提取浮点数

在 Python 中,使用正则表达式可以非常方便地从字符串中提取浮点数。Python 的 re 模块提供了正则表达式支持。下面是如何使用正则表达式提取浮点数的示例。 1、问题背景 在开发过程中,有时候我们需要从字符串中提取浮点数,例如从 HTML 代码中…

网关功能介绍

在微服务架构中,网关(API Gateway)扮演着至关重要的角色,它作为客户端和微服务之间的中介,负责路由、过滤、认证、限流等职责。以下是一些常见的网关实现: Spring Cloud Gateway: Spring Cloud …

linux系统中,计算两个文件的相对路径

realpath --relative-to/home/itheima/smartnic/smartinc/blocks/ruby/seanet_diamond/tb/parser/test_parser_top /home/itheima/smartnic/smartinc/corundum/fpga/lib/eth/lib/axis/rtl/axis_fifo.v 检验方式就是直接在当前路径下,把输出的路径复制一份&#xff0…

5-2 检测内存容量

1 使用的是bios 中断, 每次进行检测都会返回一块 内容。并且标志上,这块内存是否可用。 接下来是代码: 首先是构建 一个文件夹, 两个文件。 types.h 的内容。 #ifndef TYPES_H #define TYPES_H// 基本整数类型,下面的…

全球圆柱锂电池行业领军者!比克电池亮相2024深圳eVTOL展

2024深圳eVTOL产业发展大会暨低空经济展览会将于9月23-25日在深圳坪山燕子湖国际会展中心举办。展会将通过“两天论坛三天展览”的形式展开,专注未来城市空中交通新形态、民用有人驾驶、无人驾驶航空器、城市低空物流,并讨论eVTOL的整机研发、设计、制造…

拍卖新纪元:Spring Boot赋能在线拍卖解决方案

需求分析 1.1技术可行性:技术背景 在线拍卖系统是在Windows操作系统中进行开发运用的,而且目前PC机的各项性能已经可以胜任普通网站的web服务器。系统开发所使用的技术也都是自身所具有的,也是当下广泛应用的技术之一。 系统的开发环境和配置…

Python+selenium web测试入门基础!

自动化测试框架 from selenium import webdriver 获取浏览器对象 我这里是edge浏览器,用的是edge的webdriver # webdriver获取浏览器对象  driver webdriver.Edge() 尝试打开网站并关闭​​​​​​​ # 准备一个网址  url "https://www.baidu.com/"…

Vue2 与 Vue3 的区别有哪些

Vue 2 和 Vue 3 在许多方面都有显著的区别,包括性能、API 设计、功能特性等。以下是它们主要的区别: 1. 响应式系统 Vue 2: 基于 Object.defineProperty: Vue 2 使用 Object.defineProperty 来实现响应式数据。这种方法在处理对象属性时有一定的局限性…

包拯断案 | 数据库从库GTID在变化 为何没有数据写入@还故障一个真相

提问:作为DBA运维的你是否遇到过这些烦恼 1、数据库从库复制链路如何正确配置表过滤信息? 2、数据库从库的GTID在变化,实际却没有数据写入,究竟是什么原因? 心中有章,遇事不慌 作为DBA的你,…

如何构建短视频矩阵?云微客开启多账号协同作战

你有没有疑惑过,为什么有些账号每一次发布视频,都要艾特一下其他账号呢?那些被艾特的账号,你有点进去关注过吗?其实做过运营的都或多或少的接触过矩阵,短视频矩阵的玩法现在也逐步成为了趋势。企业通过多账…

GitHub Copilot Issue in Visual Studio Code “Status Ready (disabled)“

I’m facing an issue with GitHub Copilot in Visual Studio Code, where it’s not suggesting any code. Even though it says “enabled globally” in the extensions tab settings, the icon in the status bar has a diagonal line through it. When I click on the ico…

pyautogui进行点击失效,pyautogui.click()失效

背景:在Pycharm里,使用pythonpyautogui调用 .exe程序文件时候,当程序界面出来之后,鼠标失去反应,用pyautogui进行点击。后面尝试使用图片相似也无法实行点击。 解决方法:运行Pycharm或者其他ide的时候选择…

黑马点评2——商户查询缓存(P37店铺类型查询业务添加缓存练习题答案)redis缓存、更新、穿透、雪崩、击穿、工具封装

文章目录 什么是缓存?添加Redis缓存店铺类型查询业务添加缓存练习题 缓存更新策略给查询商铺的缓存添加超时剔除和主动更新的策略 缓存穿透缓存空对象布隆过滤 缓存雪崩解决方案 缓存击穿解决方案基于互斥锁方式解决缓存击穿问题基于逻辑过期的方式解决缓存击穿问题…

极市开发平台yolov8训练无人机数据集样例数据流程

先进入vscode,进入src_repo文件夹。 第一步,克隆一个比较好的博主的库: GitHub - Incalos/YOLO-Datasets-And-Training-Methods: This project involves making custom datasets for the YOLO series and model training methods for YOLO.…