Unity3d TextMeshPro教程

  • Post author:
  • Post category:其他


转载原文地址:

Unity3d TextMeshPro教程


在这里插入图片描述

TextMesh Pro是Unity默认文本组件的替代品。TextMesh Pro和默认组件一样拥有高性能,它使用了完全不同的Signed Distance Field(SDF)渲染技术,该技术最初由Valve在《军团要塞2》中使用。TextMesh Pro能够很轻松就能让文本看起来更美观,还提供了更高级的控制功能,你可以通过检视窗口和脚本控制文本效果。

当你在项目中使用TextMesh Pro,它拥有改进的视觉效果。由于使用SDF渲染技术,你可以轻松修改文本的效果,无需重新制作字体。每个TextMesh Pro组件都附带可以调整的材质,从而修改文本的风格。TextMesh Pro还具有更好的控制功能。TextMesh Pro组件包含所有原始文本组件拥有的变量以及更多其它变量。

一、有两个TextMesh Pro组件可用:

  1. 添加一个新的TextMesh Pro文本对象,它与网格渲染器一起工作:“GameObject->3D Object->TextMeshPro Text”。

  2. 添加一个与新UI一起工作的TextMesh Pro组件,请转到:“GameObject->UI-”> TextMeshProText”

在这里插入图片描述

二、TextMesh Pro组件分为两个部分:文本输入( Text Input Box)和字体设置( Font Settings)

在这里插入图片描述

1.文本输入Text Input Box

在此区域键入要呈现的文本。可以输入多行文本,在键盘上按或输入特殊字符\n。


Bold



Italics



Underline



Strikethrough



Superscript



Subscript


<size=48>Point size 48

<size=+18>Point size increased by 18

<size=-18>Point size decreased by 18

<pos=5.5>Characters positioned about 5.5 characters from left side.

<color=yellow>Yellow text

<#00ff00>Green text

2.字体设置Font Settings

Font Asset:这是TextMeshPro字体资源。

Font Style:对文本应用全局样式,粗体、斜体等

Vertex Color:将被指定为顶点的颜色,每个字符的颜色(除非有颜色,已指定标记)

Color Gradient:启用顶点颜色渐变

Override Color Tags:启用覆盖颜色标签。

Font Size:字体大小。

Auto Size:动态调整点大小。在最小值和最大值之间,以适应文本容器的大小。

Character Spacing:控制单个字符之间的间距。

Spacing:允许调整字符、行和段落间距。

Alignment:控制文本的对齐方式,选项有左、中、右和对齐。

Enable Word Wrap:启用或禁用换行。

UV Mapping Options:控制纹理(面和边框)如何映射到文本对象;

Enable Kerning:如果在字体资产的字距表中定义了字距对,则启用或禁用字距。

Extra Padding:非常小的字体可能需要额外的填充。这种额外的填充可以防止字符被剪。

三、Material Editor & Shaders

TextMeshPro包括几个自定义着色器以及一个自定义材质编辑器,旨在通过只公开那些预期的属性来保持事情的简单性

修改。有两组着色器,其中包括位图着色器和一些符号距离字段着色器。TextMeshPro的着色器可以在“TextMeshPro/…部分着色器列表中材料组件。http://digitalnativestudios.com/textmeshpro/docs/shaders/是SDF着色器的列表和简要描述。更新的材质

这里也有相关信息。

Distance Field Mobile:

这个轻量级着色器只包含最基本的特性,并提供了最佳的整体性能。

Distance Field:

这个更高级的着色器包含了大量的特性选择。它是默认分配给all的着色器带符号的距离字段字体资产。它仍然提供出色的性能。

Distance Field Surface:

这个着色器包含了与距离域着色器本质上相同的特性。它使用场景灯,代替使用模拟照明。这些文本对象也可以投射阴影,这个着色器使用每个像素的照明。

Distance Field Surface Mobile:

这是一个轻量级版本的表面着色器与有限的功能。它使用每个顶点的光照而不使用来自灯光的方向信息。它考虑到了光的距离。

四、材质编辑器功能面板(Material Editor Feature Panels)

定制使用的每个特性面板的概述材质编辑器。单击这些面板将隐藏或显示它们的特性,其中一些面板需要启用它们的功能。不同的面板将提供各种着色器。

Face Panel:

在这里插入图片描述

Color – 选择字符表面的颜色和透明度。(该颜色将与顶点颜色相结合。)

Texture – 选择要应用于字符表面的纹理。(颜色会影响纹理的颜色,如何应用纹理中的映射选项控制到字符/文本对象

编辑器面板。纹理选项不是在所有着色器上都可用。)

Softness -控制字体的柔软度。

Dilate -增加或减少字符的大小。

Gloss -控制字符表面的亮度。

Outline Panel:

在这里插入图片描述

Color – 控制字符轮廓的颜色和透明度。

Texture -选择要应用于字符表面的纹理。(颜色会影响纹理的颜色,纹理如何应用于字符/文本对象由编辑器面板中的映射选项控制,纹理选项不是在所有着色器上都可用。)

Thickness – 控制轮廓线的厚度。

Gloss – 控制使用表面着色器时字符表面的光泽。

Underlay Panel:

下划线可用于向文本对象添加阴影或边框。

在这里插入图片描述

Color – 控制衬底的颜色和透明度。

Offset (X, Y) – 控制衬底的位置。

Dilate – 增加或减少衬底的尺寸。

Softness – 控制衬底的柔软度。

Bevel Panel

内外斜面两种类型模拟三维斜面在二维物体上的视觉外观。

在这里插入图片描述

Amount – 控制斜面的应用数量

Offset -控制斜面相对于字符表面边缘的位置。

Width – 控制斜面效果的宽度。

Roundness -确定斜面脊线是尖锐的还是圆形的。

Clamp -限制斜面的高度。

Lighting Panel

灯光设置控制斜面、凹凸和的外观的环境映射。

在这里插入图片描述

Light Angle – 控制光线的角度。

Specular Color – 高光的颜色。

Specular Power – 控制高光的强度。

Reflectivity Power – 控制反射光的数量。

Diffuse Shadow – 增加或减少物体接收到的光量。

Ambient Shadow – 控制光线和斜面边缘的显示效果。

BumpMap Panel

Texture – 应用于文本对象的法线映射。

在这里插入图片描述

Face -控制要应用于字符表面的凹凸映射的数量。

Outline – 凹凸贴图应用于字符轮廓的数量。

EnvMap Panel

在这里插入图片描述

Color – 颜色将使环境地图变亮、变暗或着色。默认颜色为黑色,不影响文本对象。

Texture – 应用于文本对象的多维数据集映射

Glow Panel

在这里插入图片描述

Color – 辉光的颜色和透明度。

Offset – 控制辉光的位置。值0.0位于字符表面的边缘。

Inner – 控制辉光效果

Outer – 控制辉光效果向外部延伸的距离。

Power – 控制辉光效果向脸部外部延伸的距离。

五、Font Asset Creator Overview

创建方法: “Window->TextMeshPro Font AssetCreator”.

在这里插入图片描述

Font Settings

在这里插入图片描述

Font Source :是选择要创建资产的字体的地方。

Point Size :手动选择字体的大小,也可以使用Auto调整大小模式,该模式将在给定的图集分辨率中找到尽可能大的字体大小。

Font Padding 确定每个字符像素单位之间的空间大小。

Atlas Resolution:图集分辨率决定字体图集的大小。对于大多数字体其中包括完整的ASCII字符集,大小通常为512 * 512。对于带符号的距离字段渲染模式。

Character Set: 确定字体图集中包含哪些字符。

在这里插入图片描述

Custom Range_允许您定义一个表示要包含哪些字符的范围。要定义包含ASCII集和拉丁补充字符的范围,用户需要输入

32- 126,161 -255在自定义范围窗口。

Custom Characters_ 允许用户通过输入自定义字符窗口来指定要包含的字符。

Characters from File _用户能够提供一个纯文本文件,其中包含要包含在图集中的所有字符。

Font Style: 选择是否将创建粗体、斜体或大纲,以及定义大纲的厚度或粗体。

Font Render Mode :确定将如何呈现字符。

在这里插入图片描述

Hinted Smooth_ 是带有提示的反锯齿呈现。

Smooth_ 没有暗示也是一样的.

Raster Hinted_ 在不使用提示反混叠的情况下呈现字符.

Raster_ 没有反锯齿或提示。

Distance Field 16_ 创建标准模式地图集。字体将被采样16倍,以产生一个更准确的签名距离场地图集。

Distance Field 32_ 与上面相同,但是采样量是32倍以上。使用这种模式将导致一个更准确的SDF图集,虽然更准确可能只提供微妙的视觉改进。当试图将一个完整的ASCII集放入一个小的256 X 256图集或处理具有高频曲线变化的复杂形状的字体时,应该主要使用此选项。

Get Kerning Pairs :确定是否将字体文件中可能存在的字距对添加到字体资产中。如果在字体文件中没有找到字距对,则始终可以在TextMeshPro字体中添加新的字距对资产编辑面板.

Save TextMeshPro Font Asset :将弹出一个文件请求程序,允许您为新创建的资产选择文件位置和名称。默认情况下,字体名称将与字体名称相同。当使用带符号的距离字段呈现模式时,此名称将为添加了SDF的字体名称。我们建议您将字体资产保存在assets /Resources/Fonts/…或者创建这样的文件夹结构(如果不存在的话)。由于文本对象通常是通过脚本创建的,这导致任何场景对象都不会引用字体资产,这就保证了您的字体资产将包括在构建中并可用.

六、Font Asset

在这里插入图片描述

Face Info 包含特定于使用字体资产创建器呈现的字体的信息。这包括下列资料:

Font Source – 字体的名称。

Font Size – 字体在字体图集中呈现的点的大小。

Line Height – This is the spacing between each lines of text.

Baseline – 文本每行之间的间距。

Ascender – 字体中任何字符的最高点。

Descender – 字体中任何字符的最低点。

Underline – 下划线的位置。

Width & Height – 字体图集的宽度和高度

Font Sub-Assets:

Font Atlas – 字体所有字符的纹理。这种纹理是特定于这种字体的。

Font Material – 此字体的默认材质,其中包含对字体图集纹理的引用。

Face Style :

Normal & Bold weight – 字体的正常粗体权重。

Italic Style – 定义斜体的斜度。

Glyph Info 包含字体中每个字符的特定信息。

在这里插入图片描述

ASC II & Char – TASC II码和字符

X & Y – 字符在字体图集中的X和Y位置。

W & H – 字体图集中字符的宽度和高度。

Offsets – X偏移量是相对于(0,0)绘制字符的位置。Y偏移量表示字符的顶部相对于基线或(0,0)的位置。

Kerning Table Info 包含字体的字距信息。Kerning数据可以在创建字体时导入,也可以使用此面板手动添加。

在这里插入图片描述

Left Char – 字符对的左边部分

Right Char – 字符对的右边部分

Offset – 左右字符之间的偏移量