【unity3D】创建TextMeshPro(TMP)中文字体(解决输入中文乱码问题)

💗 未来的游戏开发程序媛,现在的努力学习菜鸡
💦本专栏是我关于游戏开发的学习笔记
🈶本篇是unity的TMP中文输入显示乱码的解决方式

遇到的问题描述

明明输入的是一段中文文字,但在画面的显示上却是一个一个小方块。只能正常显示英文,中文都变成了一个一个方块。这是因为TextMeshPro(TMP)不支持中文,需要自己加工一下。
在这里插入图片描述

在这里插入图片描述


解决方式

  1. 打开Window—>TextMeshPro—>Front Asset Creator
    在这里插入图片描述
    在这里插入图片描述
  2. Source Font File里选择unity自带的字体或者放入自己喜欢的需要用的字体(能支持中文字体的那种)
  3. Character File里选择中文字体的text文件(我放在博客的最后了,一个7000+常用字体的,基本够用)
  4. 点击Generate Font Atlas按钮,等待生成,之前那个什么都没有的框框里显示完内容后,就是生成完了。
  5. 点击save按钮就可以保存刚刚生成的支持中文字体的字体文件。(选择右边的save as可以自己选择存储地址)
    在这里插入图片描述
    在这里插入图片描述
  6. 应用刚刚生成的字体文件
    在这里插入图片描述

Font Asset Creator 面板扩展

在这里插入图片描述

  1. Source Font File:原字体文件,就是选择你要的字体资源,可以使用默认的 TextMesh Pro 字体资源之一,或者其它你想要的。(通常是 TrueType .ttf 文件)
  2. Samping Point Size:设置用于生成字体纹理的大小(以磅为单位)。默认就够用。
  3. Padding:在适合纹理上的所有字符时尽可能使用最大的磅值。不是完全越大越好,太大会丢失一些。这是 SDF 字体的常用设置。我个人用的默认值。
  4. Packing Method:使用自定义磅值,在文本框中输入所需的大小。使用此设置可实现对字体的像素精确控制。
  5. Atlas Resolution:指定字体纹理中字符之间的间距(以像素为单位)。填充越大,过渡越平滑,从而实现更高质量的渲染和更大的效果。对于 5x512 纹理,填充 512 通常没问题。
  6. Character File:放进去一个中文的text文本。
  7. Render Mode:设置字体纹理的大小宽度和高度(以像素为单位)。512 x 512 的分辨率适用于大多数字体,只要您只包含 ASCII 字符即可。 具有更多字符的字体可能需要更大的分辨率或多个图集。使用 SDF 字体时,分辨率越高,生成的渐变越精细,文本质量越高。
  8. Get Kerning Pairs: 启用此选项可调整字距数据。字距调整数据用于调整特定字符对之间的间距,以产生更赏心悦目的结果

中文字体文本

链接:中文text文本链接 提取码:csdn


💦更多内容请前往主页置顶或点击链接直达:【unity3D】游戏开发专栏的目录

  • 29
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猪肉丸子~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值