Unity TMP(TextMesh Pro)的中文输入相关问题
创始人
2024-11-13 06:06:06
0

开篇废话

我当时为什么要安装这个鬼玩意,之前就没搞明白,今天拿来重新折磨自己……

场景描述

一.什么也没设置,默认打文本,但中文全是口口

总而言之就是这个样子。

口口是老朋友了,反正要么是字体的问题,要么是字符集的问题。打卡开Inspector一看,在TextMeshPro里发现了一句熟悉但拼在一起不认识的英文:字体资源。

点击跳转到相应Resources文件夹,发现其是.Asset文件。猜测默认字体资源没有包含中文,搜索了解到其应该以以下方法创建:

解决方法

1. 打开Window—>TextMeshPro—>Font Asset Creator

初始界面如图

2. 设置Source Font File为字体文件

这里我直接去C:\Windows\Fonts目录随便拿一个,也可以使用网上下载的其它字体。请记得保证该字体包含中文字体。

3. 设置Character Set为Characters from File

而后新建一个文本文件,将其拖到Character File上。烘焙的所有字体将从该文本文件中找到,因此该File文件应是一个包含足够多的常用中文字符的文本文档。如果你没有,这里贴一个下载链接7000中文字符集,感谢大佬@张不无-Unity的分享。

Atalas Resolution为清晰度,简单认为数值越高结果越清晰。Render Mode使用默认的SDFAA即可满足大部分需要。

4.点击Generate Font Atlas即可创建新的字体资源,将其拖入TMP的Font Asset即可使用该字体。

为什么这里没图?因为我遇到了下一个问题

二. 生成字体资源时报错Error Code [Invalid_File_Format]

Font Asset Creator - Error Code [Invalid_File_Format] has occurred trying to load the [Name_Of_Font] font file. This typically results from the use of an incompatible or corrupted font file.

个人理解为文件类型不兼容。虽然我拿过来的的确是个字体文件,它也确实能拖到Source Font File栏里,但它确实不认。

在面板右键字体打开Properties后发现如下字样:

Unity会认.ttf文件,但直接从Windows文件夹拖过来的.TTF文件它却认不了。此外,还发现资源路径不能包含中文,否则即使它认了也有可能认不全,导致字体丢失。

解决方法

更改字体名称和文件类型。下载软件FontCreatoricon-default.png?t=N7T8https://fontcreator.com.cn/download/按如下方法操作,或者可以直接参考修改字体名称原来这么简单

将原字体文件拖进来,而后选择Font-Properties

点击Family Name旁边的+1

点击右上角减号,删去所有中文名称,然后点OK

完成后点击File-Export Font-Export Desktop Font,随便导出到哪个你喜欢的地方,我这里直接扔回了项目的Resources里。

如果现在拖进来的字体有一个小三角图标,证明成功。

此时再重新打开Font Asset Creator,点击Generate Font Atlas即可成功读取并生成。

点击Save即可保存字体资源,以后使用也可以直接使用此.Asset文件,不用再重新生成。

现在再打开你的Text(TMP)组件,将刚刚得到的字体文件拖到Font Asset上

你就(有可能)发现,还不行。

三. 字体烘焙丢失

是的,折磨还没结束。如果你和我一样还在踩坑受折磨,容我安慰你的心灵。

刚刚烘焙完成时,我们发现字体只烘焙了424/1283个。成功率极低压根没烘进去多少暂且不谈了,我的字数也不是一千多啊?我文本文档里七千多字呢!

解决方法

排除字体路径的中文问题及其它文题后,显然问题已经不能出现在字体上了。那就只能是我们七千多字的文本文件出了问题。

在面板单击该文件,查看Inspector,发现:

中文全是乱码。好了,这下还是回到了字符集编码的问题上。

双击该文件,打开VS,选择高级保存选项

——————如果你没有高级保存选项,在VS点击工具-自定义

选择命令栏,添加命令

在类别栏找到文件,命令栏找到高级保存选项

点击确定后关闭窗口即可。

点开发现编码为简体中文(GB2312)

将其改成Unicode,点击确定,保存后重复之前的烘焙操作。

此时再生成,你应该能发现生成速度慢了许多

最好的结果是Missing characters为0,如果还是丢失,那就考虑换个字体,或者缺的不多凑合用吧。

现在将得到的字体资源拖入

就可以显示中文了。

工具链接

正文里有了,只是在这里再总结一次

7000中文字符集 提取码ssnu           再次感谢张不无-Unity大佬

fontcreator

相关内容

热门资讯

解密关于!wpk辅助软件查得出... 解密关于!wpk辅助软件查得出来,we辅助poker,2025新版(有挂秘籍)-哔哩哔哩;wpk辅助...
第2分钟透明挂!wejoker... 第2分钟透明挂!wejoker辅助机器人,德普之星辅助器(透视)攻略教程(发现有挂)暗藏猫腻,小编详...
复盘辅助挂!德州ai代打,微扑... 复盘辅助挂!德州ai代打,微扑克机器人代打俱乐部,2025版教程(新版有挂)-哔哩哔哩;一、微扑克机...
4分钟神器!wpk模拟器是什么... 4分钟神器!wpk模拟器是什么,hhpoker是真的还是假的(透视)透牌教程(有挂规律)1、该软件可...
玩家必看分享!aapoker透... 玩家必看分享!aapoker透明挂使用教程,wepoke是可以软件,插件教程(有挂神器)-哔哩哔哩;...
第五分钟科普!佛手在线有挂吗,... 第五分钟科普!佛手在线有挂吗,红龙poker辅助(透视)分享教程(有挂猫腻)1.佛手在线有挂吗 ai...
推荐一款!德扑之星ai计算,德... 推荐一款!德扑之星ai计算,德扑ai工具,科技教程(有挂功能)-哔哩哔哩;最新版2026是一款经典耐...
第6分钟体悟!wepokerp... 第6分钟体悟!wepokerplus透视脚本免费,aapoker辅助挂(透视)攻略教程(详细教程)1...
我来教大家!wpk职业代打,w... 我来教大家!wpk职业代打,wpk外挂第一视角,透视教程(有挂总结)-哔哩哔哩;wpk外挂第一视角软...
1分钟掌握!wepoker有什... 1分钟掌握!wepoker有什么规律,wepoker有辅助吗(透视)分享教程(有挂详情)1、该软件可...