有什么不明白的地方,扫描右方二维码加我微信交流。
       

TextMeshPro是一个强大的组件,效果多,渲染效率高,字号设置大了不虚,图文混合显示等等,下面讲讲制作和使用方法。

查看更多使用方法,请移步这里

想要了解更多的TMP支持的RichText标签,可以查看 TMP_RichTextTagsCommon.cs 源代码。

Demo的GitHub链接:点击跳转

制作:

  1. 在Unity中导入TextMeshPro插件(可以在Package Manager中查找导入,也可以创建一个TextMeshPro对象根据提示来导入);
  2. 导入后在Assets目录中多了一个TextMesh Pro文件夹,这是存放生成的字体文件的地方;
  3. 准备字体源文件(Mac系统在字体册里查找要制作的目标字体,右键在Finder中显示,则可以找到,格式有ttf,ttc,otf等);
  4. 把字体源文件拖入TextMesh Pro文件夹;
  5. 点击Unity菜单Window->TextMesh Pro->Font Asset Creator,打开字体制作窗口;
  6. 如图参数介绍:(点击查看详细介绍
  7. 点击Generate Font Atlas生成字体,如果所选字体没有全部包含在图中,或者生成的字特别小,导出之后字的边缘模糊,则把Atlas Resolution改大一点,重新打包,直到达到想要的效果;
  8. 字体生成完毕后点击Save as生成字体文件到Fonts & Materials文件夹。

效果设置:

修改新生成的字体材质的各个参数可以添加如下效果:

Face:字体颜色设置

这是最基本的字体颜色设置,可以添加图片给字体添加纹理。

Outline:给字体加描边

调整Thickness参数可以设置描边的宽度,可以添加图片给字体的描边添加纹理。

Underlay:给字体加阴影

给字体加阴影,可以调整OffsetX,OffsetY设置阴影的位置,Dilate设置阴影厚度,Softness设置阴影的虚化程度。

Lighting:光照(需要先设置描边)

当字体有描边时,加上光照,字体立即就感觉出有3d效果,调整参数可以设置光照的角度,位置,强度等等。

Glow:发光

分为内发光和外发光,自行调整参数即可查看效果。

Debug Settings:

如果在游戏中是同一个字体格式,但是需要显示不同的效果,则创建新的材质,材质的Shader选择TextMeshPro里的Distance Field,把材质重命名,以新字体的文件名称为前缀,后面自定义添加。如下图所示。创建好材质,把刚刚制作出的新字体的图片文件拖动到Debug Settings里的Font Atlas里,这样就可以在Editor里给TextMeshProUGUI组件选择材质了,如下图所示:

字体颜色渐变,两种方法:

  1. 给要显示的文字单独设置(勾选Color Gradient并选择颜色)。如果是多个文字都需要使用渐变色,则设置起来相对麻烦。如下图:
  2. 在Fonts & Materials文件夹里右键->Create->TextMeshPro->Color Gradient,设置好颜色把文件拖动到文字组件的Color Gradient处,即可显示,如下图:

图文混用,Extra Settings->Sprite Asset:

图文混用,图文混用需要用TextMeshPro插件中的Sprite Asset资源,给Sprite Asset添加emoji资源,例子中使用的为TextMeshPro的默认图像,如图所示:

若要自动生成Sprite Asset,则右键图片,点击Create->TextMeshPro->Sprite Asset,则会自动生成图片的一个Sprite Asset资源,如下图所示:

使用图片时,如果位置不对,则需要自己调整一下,如下图:

补充

  • 2021.2.27——添加图文混用方法。

2 对 “在Unity中使用TextMeshPro组件”的想法;

  1. 请问描边材质之间不能合批,增加drawcall怎么处理

    1. 这块目前我没有做过处理,TMP的性能还可以,一般来说不需要考虑合批的问题。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注