Unity中Text Mesh Pro研究说明

Unity学习笔记

第一篇 Unity中Text Mesh Pro研究说明



前言

在游戏开发过程中,UI界面的文字,因需要添加描边或投影,以增强文字表现,便于阅读。在添加描边效果的时候,发现Unity Text组件自带的描边效果非常差劲。因此换用Text Mesh Pro(TMP)来提高描边和投影效果。
在实际使用过程中,对TMP进行了一些研究,现整理成笔记,供各位也在使用TMP的同行借鉴。


一、Text Mesh Pro简要介绍

Unity 自带的Text文字组件,在高分辨率模式下,文字清晰度不足。且如需要描边和投影效果,则效果也欠佳。
Text控件的文字渲染效果
Text控件描边效果展示
Text控件描边效果由于实现的原因,导致其在边角位置出现缺口。
因此,在部分需要较高清晰度,或需要额外文字效果的情况下,可使用text mesh pro组件来实现所需要的效果。

1.1 优点

1、 丰富的文本段落控制参数:TextMesh Pro提供了对文本格式和布局的改进控制,超过30个丰富的文本标签,包括支持上标,下标,下划线,划线,缩进,对齐,单步,行高,以及更多。支持多种字体和精灵、自定义样式等功能
2、 支持TrueType和OpenType
3、 支持以材质的方式给文字添加纹理效果

1.2 缺点

1、 不能直接使用TTF字体,需要基于TTF字体创建专用字体文件资源。
2、 对中文支持不够好,需要使用动态字体模式生成字体文件。

二、创建字体TMP_Font Asset

2.1 快捷创建

在unity编辑器界面的project窗口,右键要使用 的TTF字体文件,在右键菜单中按顺序选择 Create>TextMeshPro>Font Asset,即可快捷创建对应的字体资源。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
生成的字体资源,icon为蓝色的F字母。选中该资源,在Inspector窗口中可以看到unity定义的字体类型为TMP_Font Asset
在这里插入图片描述
在这里插入图片描述

2.2 手动创建

手动创建字体资源,按照以下路径进入创建界面:Window>Text Mesh Pro>Font Asset Creator
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2.1 Padding示例

下面分别展示Padding为0,5,10的SDF font 纹理,(SDF模式字体,越模糊效果越好)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2.2 Rander Mode效果示例

在这里插入图片描述
1、 SMOOTH、RASTER模式的字体,其投影不支持模糊效果。
2、 RASTER模式的字体锯齿强烈。
3、 SDF各类型效果差异不大,基本使用SDFAA模式即可,除非该字体使用SDFAA会出现乱码,则选择SDF或SDF8进行尝试。

三、TMP_Font Asset结构说明

在这里插入图片描述
TMP字体文件内部包含一个材质球资源、文字贴图资源。

四、材质球参数说明

4.1 Face

在这里插入图片描述

属性说明
Color选择字符表面的颜色和透明度。(该颜色将与顶点颜色Vertex Color相结合。)
Texture选择要应用于字符表面的纹理。(颜色会影响纹理的颜色,如何应用纹理中的映射选项控制到字符/文本对象编辑器面板。纹理选项不是在所有着色器上都可用。)
Softness控制字体的柔软度。
Dilate增加或减少字符的大小。

纹理举例

4.2 Outline描边

在这里插入图片描述

属性说明
Color控制字符轮廓的颜色和透明度。
Texture选择要应用于字符表面的纹理。(颜色会影响纹理的颜色,纹理如何应用于字符/文本对象由编辑器面板中的映射选项控制,纹理选项不是在所有着色器上都可用。)
Thickness控制轮廓线的厚度。通常0.1 = 2像素描边

描边效果对比

4.3 Underlay阴影

在这里插入图片描述

属性说明
Underlay Type选择投影类型:None:无、Normal:常规投影、Inner:字体内部
Color投影颜色
Offset X投影X轴偏移值
Offset Y投影Y轴偏移值
Dilate投影尺寸
Softness投影模糊值

投影效果对比

五、多材质球设置

每个字体文件内部有一个材质球,但每个材质球只能关联一个shader着色器,可能会遇到不同的文字组件使用相同的字体,但有些文字需要加投影,有些文字需要加描边。而一个材质球无法配置成在不同文字组件中开启不同的参数配置。

但TMP字体可以配置多个材质球,不同的材质球设置不同的参数, TMP组件的Inspector中的Material Preset切换材质球以实现,在不同的文字组件中出现描边、投影效果。

5.1 创建额外材质球方式

在这里插入图片描述
1、 在需要创建额外材质球字体内部,选中材质球。
2、 按 Ctrl+D,即可生成一个额外材质球。
3、 生成的额外材质球可以在名字最后加效果名称以进行区分。比如:xxxx_outline、xxxx_shadow
4、 Unity是按照字体名称来进行查找筛选,因此不可以修改材质球名称前面部分,需要跟字体完全一致。

5.2 切换材质球方式

在这里插入图片描述
1、 在TMP组件中,点击Material Preset,即可在下拉菜单中选择其他的预设材质球。


总结

以上,就是我在实际使用TMP过程中,摸索和借鉴网上已有TMP文章知识,总结得出的TMP使用笔记,希望能帮助到也在使用TMP的各位策划朋友。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值