【游戏开发实践】手把手教学,Unity使用TextMeshPro显示字体

【游戏开发实践】手把手教学,Unity使用TextMeshPro显示字体

文章目录

一、前言

在 Unity 中显示文本,我们一般使用 UGUI 的 Text 组件。

在这里插入图片描述

在这里插入图片描述

但是,Text 渲染的字体不是矢量化的,所以靠近时会看到锯齿和模糊。

在这里插入图片描述

今天介绍另一个显示文字的组件:TextMeshPro,使用它渲染的字体是矢量的,接近时不会出现锯齿和模糊。

此外,还有丰富的表现效果,如模糊、膨胀、描边、发光等。

在这里插入图片描述

二、TextMeshPro 组件1、导入ttf字体

将ttf格式字体导入Unity项目中,如下,我导入一个微软雅黑ttf格式字体库。

在这里插入图片描述

2、打开字体资源创建器

点击菜单 Windows / TextMeshPro / Font Asset Creator

在这里插入图片描述

第一次打开会弹出如下提示框,点击Import TMP Essentials

在这里插入图片描述

打开后,可以看到 Font Asset Creator 窗口。

在这里插入图片描述

3、创建txt字体文本

创建一个txt文件unity模糊描边,比如character.txt,在里面输入要使用的单词程序开发,比如:大家好,我是林新发

在这里插入图片描述

4、设置字符集

在 Font Asset Creator 窗口中将 Character Set 设置为 Characters from File:

在这里插入图片描述

然后将刚才的character.txt赋值给Character File:

在这里插入图片描述

5、生成字体图集unity模糊描边,保存字体资源

点击生成字体图集:

在这里插入图片描述

保存字体资产资源,例如 msyh SDF.asset:

在这里插入图片描述

完成后,您可以看到 msyh SDF.asset 文件。

在这里插入图片描述

6、创建TextMeshPro

在 Canvas 上添加右键菜单:UI / Text - TextMeshPro 以创建 TextMeshPro 对象。

在这里插入图片描述

您可以看到它附加了一个 TextMeshPro - Text (UI) 组件。我们把新建的msyh SDF.asset赋值给它的Font Asset,输入显示文字:大家好,我是林新发。

在这里插入图片描述

显示文本内容。

在这里插入图片描述

无论我们在场景中看多近,字体都显示得非常清楚。

在这里插入图片描述

7、在 3D 空间中显示 TextMeshPro

以上是在UI上展示TextMeshPro,我们也可以在3D空间展示TextMeshPro。

在世界空间中创建一个空对象,然后单击菜单 Create Empty:

在这里插入图片描述

然后添加 TextMeshPro-Text 组件,注意它不是 TextMeshPro-Text (UI) 组件。

在这里插入图片描述

然后分配字体资源,并输入显示文本。

在这里插入图片描述

TextMeshPro 现在可以在 3D 空间中显示。

在这里插入图片描述

将字体移近相机,字体依然清晰:

在这里插入图片描述

8、描边效果

选择 TextMeshPro 对象并调整材质的轮廓颜色和刻度。

在这里插入图片描述

9、柔化效果

调整Softness可以达到字体的柔化效果。

在这里插入图片描述

10、扩展效果

调整Dilate可以达到字体的膨胀效果。

在这里插入图片描述

11、投影效果

调整Underlay可以实现字体的投影效果。

在这里插入图片描述

12、灯光效果

调整Lighting可以达到字体的光照效果。

在这里插入图片描述

13、外发光效果

调整Glow可以实现字体的外发光效果。

在这里插入图片描述