【Unity学习笔记】TextMeshPro文档(一) |
您所在的位置:网站首页 › 修改字符间距的位置 › 【Unity学习笔记】TextMeshPro文档(一) |
本人英语渣渣翻译,稍微删减了些自认为可以忽视的部分,原文地址 http://digitalnativestudios.com/textmeshpro/docs/textmeshpro-component/ Text Objects提供了两个TextMesh Pro物体,一个用于Unity UI,另一个是用于3D场景。二者功能大体相同,但也有少许区别。本文使用用于UI那个来描述功能,也会指出二者的不同。 1 Text Objects你可以通过GameObject>UI>Text-TextMeshPro来添加该UI物体。和其它UI物体一样,这个新物体也有Transform和Canvas Renderer组件,然后你就可以通过Text Mesh Pro组件来管理文本,你也可以将此组件添加到其它游戏物体中,它会自动的添加必要的属性。 在Inspector面板也能看到渲染文本所用的material。通常情况下,UI物体是不会用这方式显示它们的material的,因为它们没有Mesh Renderer组件。在这里,它实际是inspector面板的一部分。如果你给这个物体添加更多的组件,它们会显示到material的下面,除非你改变它们的排序。(但是我没看到这种现象,可能版本更新了?) 通过这个material可以很方便的访问文本的材质。但是,它不允许UI物体的Material属性设置动画,这是Unity的UI解决方案的限制。 1.2 3D Text Object3D物体通过GameObject>3D Object>Text-TextMeshPro来创建。创建的文本是平的,看起来就和UI文本一样。但是它是单独存在于游戏场景中的,而不是Canvas的子物体。(它和3D游戏物体一样,可以在3D空间中旋转缩放移动) 文本输入框是用来输入文字的 你可以勾选Enable RTL Editor单选框转换为从右到左的文本排列方式(相当于把字符的显示顺序颠倒,abc显示为cba),文本在显示前会将字符顺序颠倒过来。勾选后,Inspector面板上会多出一个RTL Text Input输入框,可以直接编辑已经反顺序的文字。 关于字体、字体风格、对齐方式等的设置 ![]() TextMesh Pro使用它自己的字体资产(Font Asset),你可以通过Font Asset Creator面板进行创建。默认使用的是LiberationSans SDF。 3.2 Material Preset材质预设。每个字体资产都有默认的材质,你也可以为它创建自定义的材质。你可以使用这个下拉列表快速切换。 这个列表中的材质是通过搜索 名称中包含对应字体名字并且使用对应的字体图集纹理的材质 添加的。 3.3 Font Style![]() 有七种字体风格供你选择。如果你想让其中部分文字效果不同,可以使用富文本(rich text)标签 前俩选项是粗体和斜体,它们的外观依赖字体资产(Font Asset)。 接着那俩是underlie和strikethrough表示下划线和删除线,效果就是在字体下面或者中间加一条横线。 最后三是用来设置字母大小写的,功能分别是:小写,大写,和小写字母尺寸一样大的大写 前四个可以随意选择,最后三同一时刻只能选一个。 3.4 Font Size
当auto size勾选时,可以指定字符的最小和最大值。Text Mesh Pro将会自动计算,找到最适合的大小,确定的大小会显示在Font Size输入框中。 WD% WD%包含一个百分比值,表示控制最大的字符的宽度减少百分比。这会水平的挤压字符,使它们更高,通常只适用于数字。 你还可以通过修改Line来减少行高从而适应更大的字体大小。 当勾选了auto size,会花很多时间去计算字符合适的大小。所以只在必要的时候勾选它,并且要避免对频繁改变的动态文字使用此项。如果你的文本从不改变,你可以勾选此项,记住计算出的字体大小,然后取消勾选,并手动填入刚刚计算出的值。 3.5 Vertex Color
这里的渐变颜色会与前面的Vertex Color相乘,所以如果想看原始渐变,就让Vertex Color颜色为白色。 如果勾选了override tags,那么rich text的颜色会被忽视。 3.6 Spacing Options
这些设置也可以通过富文本(rich text)修改。 3.7 Alignment
水平方向有四种对齐方式(实际上现在有六种),left、center、right模式控制行的对齐方式。不会改变行的内容,只改变行的位置。下面三图分别是lefr、center、right 垂直方向上一共有六种对齐方式,其中前三种Top、Middle、Bottom类似前面横向对齐方式的前三个,只不过是垂直的。 第四个方式是baseline,它会调整内容的位置,从而让文本的第一行的基准线(应该是下划线位置)对齐文本显示区域的中间。 第五个方式是midlie,它像是中线对齐,但是使用的是文本的网格边界来确定垂直位置,而不是行度量。“这在空间狭小的情况下很有用,否则上升和下降会延伸得太远。(百度翻译)” 最后一个方式是capline,它和baseline方式差不多,只不过是用文本第一行的中间对齐文本显示区域的中间。 3.8 Wrapping & Overflow当Wrapping设为Enabled,这可以确保文字不会显示到文本显示区域的外面(就是自动换行嘛)。对于单词也会正常换行,除非一个单词的就已经比一行的宽度要长。 overflow属性决定文本比显示区域长的情况。overflow模式表示文本会延申到显示区域外面。Elipsis模式会把显示区域外的文字裁切掉(不显示)并在显示区域内文字末尾加上三个点…来表示有文字省略了。Truncate模式就是简单的把显示区域外卖的文字裁切掉。下图分别时Overflow、Ellipsis和truncate的图示: 可以使用支持其他纹理的着色器将图像映射到文本顶部。UV映射选项控制纹理在文本上拉伸的方式。每个维度(横、竖)可以使用不同的设置。左侧选项用于X标注,右侧选项用于Y标注。 纹理的wrap模式需要设置为repear,否则将无法正确显示。 Character模式会在每个字符的sprite上面拉伸纹理,因此每个字符显示相同的图像,根据其自身的纵横比拉伸。 UV偏移可用于调整纹理在X和Y维度上的相对位置。当这些偏移被添加到纹理坐标时,要在视觉上正向移动纹理,必须应用负偏移。 还有一个行偏移量,当使用行或段落映射时,它会添加到每个连续行的X偏移量中。你可以使用这个倾斜纹理。 (百度翻译,太困了,今天到此为止) (这一项现在已经被搬到了Extra Setting里面) Kerning控制是否使用字体的kerning data。这对没有kerning data的字体无效。 Extra padding最小化用于渲染字符的sprites的大小。创建几何体是为了适应可见文本,但这并不总是完美的。为精灵添加额外的填充,以防止字形在精灵的边界处被切断。 4 Extra Settings这一部分包含一些杂项设置。 对于raycast target,如果关了,UI就会忽视鼠标和文本的交互。 当Parse Escape Character开启时,就会将带有反斜杠的字符转换为特定的字符。比如\n转化为换行,\t转换为制表符,等等。注意:这是指实际的文本,比如用户的驶入。在代码中,早就被编译器转化好了。 可以通过脚本去限制文本的可见字符数,这可以用于慢慢显示文本。让Visible Descender和垂直对齐方式的bottom结合使用。当启用此项时,文本显示在底部并动态随着行数的增加而往上推,当不启用时,文本是从上往下显示。(我没太懂最后这句话的意思,因为按照我的理解,好像勾不勾选此项没啥区别。) 4.1 3D Text Object对于3D物体来说,有一丢丢不同、它没有margins和raycast-target设置。(同时多了一些设置) Orthographic mode should be enabled when using camera-aligned text with an orthographic camera. It instructs the shader to not use any perspective correction. Orthographic模式在要让文本对齐正交摄像机时使用,它要求shader不适用任何透视矫正(因为不是很确定,就把原文放在上面)。 “默认情况下,四边形用于显示字符。启用的体积设置将激活另一种模式,在这种模式下,将使用立方体。这允许体积角色渲染,但目前没有着色器支持此功能。(百度翻译,现在似乎取消了该项?)” 5 Text ContainerUI text物体使用UI Canvas确定它的位置和大小,这是通过RectTransform组件控制的。 虽然3D text物体也有RectTransform组件,它并没有访问canvas的布局系统,相反,它有自己的容器组件(先版本默认情况下已经看不到这个组件了)。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |