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

💗 未来的游戏开发程序媛,现在的努力学习菜鸡

💦本专栏是我关于游戏开发的学习笔记

🈶本篇是unity的TMP中文输入显示乱码的解决方式

创建 TextMeshPro 中文字体

    • 遇到的问题描述
    • 解决方式
    • Font Asset Creator 面板扩展
    • 中文字体文本

      遇到的问题描述

      明明输入的是一段中文文字,但在画面的显示上却是一个一个小方块。只能正常显示英文,中文都变成了一个一个方块。这是因为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】游戏开发专栏的目录