TextMeshPro 是 Unity 中强大的文本渲染系统,但默认英文字体在处理中文时会出现“口口”乱码问题。本文将手把手教你如何设置支持中文的字体,适配 TextMeshPro。


🧩 一、问题现象

你在使用 TextMeshProUGUI 组件时,如果使用的是默认字体(如 LiberationSans SDF),输入中文会出现下图问题:


显示结果:你好吗 => 口口口


✅ 二、解决方案概述

要让 TextMeshPro 正确显示中文,需要:

  1. 准备一个包含中文字符的字体(如思源黑体、微软雅黑等);

  2. 使用 TextMeshPro 的 Font Asset Creator 工具生成字体资源;

  3. 将生成的字体资源应用到 TMP 组件上。


🛠️ 三、详细步骤

第一步:导入中文字体

  1. 找一款中文字体(推荐 思源黑体 或系统自带的 simhei.ttf);

  2. .ttf.otf 文件拷贝到 Unity 的 Assets/Fonts/ 目录下;

  3. Unity 会自动导入这个字体资源。

第二步:生成 TMP 字体资源(Font Asset)

  1. 选择顶部菜单:Window > TextMeshPro > Font Asset Creator

  2. 在面板中设置如下:

    参数设置说明
    Source Font File拖入你的中文字体(如 simhei.ttf)
    Sampling Point一般设置为 90(可调)
    Character Set推荐选择 Custom Characters
    Custom Characters输入你项目中要显示的所有汉字或复制整段文本
    Atlas Resolution选择 1024x1024 或更大(防止打包不全)

  3. 点击 Generate Font Atlas,生成后点击 Save 保存成 .asset 文件。

⚠️ 注意:中文字符非常多,建议你只导入项目中用到的字。


第三步:应用到 TextMeshPro 组件上

  1. 在场景中选择 TextMeshProUGUI 组件;

  2. 将你生成的 .asset 文件拖入 Font Asset 字段中;

  3. 现在可以正常显示中文了!


第四步:设置创建TextMeshPro的默认字体资源

        设置路径:Edit->ProjectSettings->TextMeshPro->Settings->DefaultFontAsset

现在可以正常显示中文了!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐