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
在此区域键入要呈现的文本。可以输入多行文本,在键盘上按
Bold
Italics
Underline
Strikethrough
Superscript
Subscript
<#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 - 左右字符之间的偏移量