💗 未来的游戏开发程序媛,现在的努力学习菜鸡
💦本专栏是我关于游戏开发的学习笔记
🈶本篇是unity的TMP中文输入显示乱码的解决方式
创建 TextMeshPro 中文字体
- 遇到的问题描述
- 解决方式
- Font Asset Creator 面板扩展
- 中文字体文本
遇到的问题描述
明明输入的是一段中文文字,但在画面的显示上却是一个一个小方块。只能正常显示英文,中文都变成了一个一个方块。这是因为TextMeshPro(TMP)不支持中文,需要自己加工一下。
解决方式
- 打开Window—>TextMeshPro—>Front Asset Creator
- 在Source Font File里选择unity自带的字体或者放入自己喜欢的需要用的字体(能支持中文字体的那种)
- 在Character File里选择中文字体的text文件(我放在博客的最后了,一个7000+常用字体的,基本够用)
- 点击Generate Font Atlas按钮,等待生成,之前那个什么都没有的框框里显示完内容后,就是生成完了。
- 点击save按钮就可以保存刚刚生成的支持中文字体的字体文件。(选择右边的save as可以自己选择存储地址)
- 应用刚刚生成的字体文件
Font Asset Creator 面板扩展
- Source Font File:原字体文件,就是选择你要的字体资源,可以使用默认的 TextMesh Pro 字体资源之一,或者其它你想要的。(通常是 TrueType .ttf 文件)
- Samping Point Size:设置用于生成字体纹理的大小(以磅为单位)。默认就够用。
- Padding:在适合纹理上的所有字符时尽可能使用最大的磅值。不是完全越大越好,太大会丢失一些。这是 SDF 字体的常用设置。我个人用的默认值。
- Packing Method:使用自定义磅值,在文本框中输入所需的大小。使用此设置可实现对字体的像素精确控制。
- Atlas Resolution:指定字体纹理中字符之间的间距(以像素为单位)。填充越大,过渡越平滑,从而实现更高质量的渲染和更大的效果。对于 5x512 纹理,填充 512 通常没问题。
- Character File:放进去一个中文的text文本。
- Render Mode:设置字体纹理的大小宽度和高度(以像素为单位)。512 x 512 的分辨率适用于大多数字体,只要您只包含 ASCII 字符即可。 具有更多字符的字体可能需要更大的分辨率或多个图集。使用 SDF 字体时,分辨率越高,生成的渐变越精细,文本质量越高。
- Get Kerning Pairs: 启用此选项可调整字距数据。字距调整数据用于调整特定字符对之间的间距,以产生更赏心悦目的结果
中文字体文本
链接:中文text文本链接 提取码:csdn
💦使用的话个人觉得跟着解决方式的步骤来就可以了,面板上的默认值就可以用。我目前是这么用的,更深层次的我还不会。
💗如果你觉得写的还可以,请给我点一个赞~~