首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Unity-TextMeshPro字体使用

Unity-TextMeshPro字体使用

作者头像
心疼你的一切
发布2026-01-20 13:32:42
发布2026-01-20 13:32:42
6990
举报
文章被收录于专栏:人工智能人工智能

👉一.Unity字体种类展示

在这里插入图片描述
在这里插入图片描述

这是字体包里面的图片,是不是很多种字体.

下载链接不能用了,涉及到ban quan,

可以留言,我发给你 有时候可能回复的不是很快(抱拳了,工作日很快)

👉二.TextMeshPro介绍

TextMeshPro 是 Unity 的文本解决方案。它是 Unity 的 UI 文本和旧版文本网格的替代品。

TextMeshPro(也称为 TMP)功能强大且易于使用,它使用高级文本渲染技术以及一组自定义着色器;提供显着的视觉质量改进,同时在文本样式和纹理方面为用户提供着难以置信的灵活性。

TextMeshPro 提供了对文本格式和布局的改进,具有字符、单词、行和段落间距、字距调整、对齐文本、链接、支持多字体和精灵、自定义样式等功能。

TextMeshPro 的原理是基于 Mesh 渲染的,它使用了一种叫做 Signed Distance Field(简称 SDF)的技术,可以在运行时动态生成文本的 Mesh,从而实现更高质量的文本渲染效果。

SDF 技术是一种将二维平面上的图像转换为三维空间中的距离场的技术。在 SDF 中,每个像素点都包含了一个距离值,表示该像素点距离图像的边缘有多远。通过计算距离值,可以实现各种文本效果,比如描边、阴影、高亮等等。

TextMeshPro 通过使用 SDF 技术,可以实现更高质量、更灵活的文本渲染效果。它可以动态生成文本的 Mesh,从而实现各种效果,比如描边、阴影、高亮等等。同时,TextMeshPro 还提供了丰富的 API,可以方便地实现各种文本效果。

👉三.TextMeshPro创建方法

右键UI/TextMeshPro然后弹出如下图,点击Import TMP Essentials 导入即可

在这里插入图片描述
在这里插入图片描述

设置完成你会发现无法设置中文,只能设置字母或数字,所以接着往下看 1.第一步先有一个字体.ttf.ttc.otf 格式的字体 2.第二步拖到unity中 3.第三步创建字体库

在这里插入图片描述
在这里插入图片描述

4.第四步 把字体拖到如下图位置

在这里插入图片描述
在这里插入图片描述

5.第五步 点击GenerateFontAtlas等待一会点save到文件夹里 6.第六步把刚保存的文件拖到如下图的位置即可使用

在这里插入图片描述
在这里插入图片描述

👉三.TextMeshPro的使用方法

里面包含多种用法,具体用法请自行扩展 代码如下

代码语言:javascript
复制
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;

public class TextMeshProScript : MonoBehaviour
{
    public TextMeshProUGUI textMeshPro;

    void Start()
    {
        textMeshPro.text = "Hello, World!";
    }

    //设置它的样式
    public void TextYangShi()
    {
        //设置字体
        textMeshPro.font = Resources.Load<TMP_FontAsset>(".ttf");  
        //设置字体大小
        textMeshPro.fontSize = 24;
        //设置字体颜色
        textMeshPro.color = Color.white;
        //设置轮廓宽度
        textMeshPro.outlineWidth = 0.1f;
        //设置对齐方式
        textMeshPro.alignment = TextAlignmentOptions.Center;
        //设置字体的高亮效果
        textMeshPro.richText = true;
        textMeshPro.text = "<color=yellow>Hello, World!</color>";

    }
    // Update is called once per frame
    void Update()
    {
        
    }
}

补充:

👉TextMeshPro的核心原理

  1. SDF(Signed Distance Field)技术 TextMeshPro通过SDF技术将字符形状转换为距离场数据,存储在图集中。SDF通过计算每个像素到字符边缘的距离,动态生成平滑的轮廓,使得字体在任意缩放比例下均能保持清晰,避免传统位图字体的模糊问题。
  2. 字符图集(Font Atlas) TMP需要将字体字符预渲染到一张图集中,包括静态和动态两种模式: 静态字体:预先指定所有需要显示的字符(如通过TXT文件),生成固定图集,适用于高频使用且字符集固定的场景。 动态字体:运行时按需生成字符图集,灵活性高但可能因频繁生成导致性能问题。
  3. 字体后备(Font Fallback) 当主字体缺少某些字符时,TMP支持从其他字体资源中查找并显示备用字符,常用于处理特殊符号或低频字符。

👉使用中文字体的关键步骤

  1. 字体资源准备 选择中文字体文件:推荐使用支持中文的字体文件(如微软雅黑、思源黑体),从系统字体目录(如C:\Windows\Fonts)复制.ttf或.otf文件至Unity项目。 字符集文件(TXT):创建包含所需中文字符的TXT文件(如常用7000字),需以UTF-8编码保存。
  2. 生成字体图集 打开Font Asset Creator:通过菜单Window > TextMeshPro > Font Asset Creator进入工具界面。 配置参数: Source Font File:选择中文字体文件。 Character Set:选Characters from File,并指定字符集TXT文件。 Atlas Resolution:建议设为8192x8192以容纳更多字符,避免显示不全。 Padding:设置字符间距(推荐为字体大小的1/10)。 生成并保存:点击Generate Font Atlas生成图集,保存为.asset文件。
  3. 应用字体资源 将生成的.asset文件拖拽至TextMeshPro组件的Font Asset字段。 若需动态扩展字符,可在主字体的Fallback List中添加动态字体资源。

👉注意事项与优化技巧

  1. 字符集覆盖不足 若输入字符未包含在静态图集中,会显示“方块”。需重新生成包含更多字符的图集或启用动态字体补充。 推荐结合静态和动态字体:常用字符预生成,低频字符通过Fallback动态加载89。
  2. 图集分辨率与性能

高分辨率(如8192x8192)会大幅增加内存占用,需根据项目需求平衡。动态字体图集建议使用2048x2048以控制资源大小。

  1. 材质与Shader问题 若文字出现白色底纹,需将材质Shader从SDF切换为Bitmap。 警告“Unable to add character”可通过勾选图集纹理的Is Readable属性解决。
  2. 动态字体的性能风险 动态生成字符可能导致运行时卡顿,建议在打包前通过Update Atlas Texture预生成所有字符。 多语言与特殊符号 处理中文标点符号时,需在字符集中包含全角符号(如“,”、“。”),或通过Fallback添加专用符号字体。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-04-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 👉一.Unity字体种类展示
  • 👉二.TextMeshPro介绍
  • 👉三.TextMeshPro创建方法
  • 👉三.TextMeshPro的使用方法
  • 👉TextMeshPro的核心原理
  • 👉使用中文字体的关键步骤
  • 👉注意事项与优化技巧
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档