自动布局
UI 参考

富文本

UI 元素和文本网格的文本可以包含多种字体样式和大小。UI 系统和旧版 GUI 系统都支持富文本。Text、GUIStyle、GUIText 和 TextMesh 类都具有 Rich Text 设置,此设置会指示 Unity 在文本中查找标记标签。Debug.Log 函数也可使用这些标记标签来增强代码中的错误报告。标签不会显示,但会指示要应用于文本的样式更改。

标记格式

该标记系统受 HTML 的启发,但并不打算与标准 HTML 严格兼容。基本思想是可以将文本的一部分包含在一对匹配标签内:

   We are <b>not</b> amused

如示例所示,标签就是“尖括号”字符 < 和 > 内的文本片段。标签内的文本表示标签的名称(在本示例中就是 b)。请注意,该部分末尾的标签与开头的标签具有相同名称,但添加了斜杠 / 字符。标签不会直接显示给用户,而是用于说明其包裹的文本的样式。上例中使用的 b 标签将粗体应用于单词“not”,因此文本将在屏幕上显示为:

   We are not amused

标记的文本部分(包括将其包裹的标签)称为元素

嵌套的元素

通过将一个元素“嵌套”在另一个元素中,可以将多个样式应用于文本的一部分

   We are <b><i>definitely not</i></b> amused

i 标签表示应用斜体样式,因此将在屏幕上显示为

   We are definitely not amused

请注意结束标签的顺序与起始标签的顺序相反。为了更清楚说明原因,现在让内部标签不必跨越最外层元素的整个文本

   We are <b>absolutely <i>definitely</i> not</b> amused

得到的结果为

   We are absolutely definitely not amused

标签参数

有些标签对文本具有简单的“全有或全无”(all-or-nothing) 效果,但其他标签可能允许变化。例如,color 标签需要知道要应用的颜色。应使用参数将此类信息添加到标签中:

   We are <color=green>green</color> with envy

请注意,结束标签不包含参数值。可选择将值用引号引起来,但这不是必需的。

支持的标签

以下列表描述了 Unity 支持的所有样式标签。

标签 描述 示例 注意事项
b 以粗体显示文本。    We are <b>not</b> amused.
i 以斜体显示文本。    We are <i>usually</i> not amused.
size 根据参数值设置文本的大小(以像素为单位)。    We are <size=50>largely</size> unaffected. 尽管此标签可用于 Debug.Log,但如果大小设置得太大,您会发现窗口栏和控制台中的行间距看起来很奇怪。
color 根据参数值设置文本的颜色。可使用传统的 HTML 格式指定颜色。   #rrggbbaa …其中的字母对应于十六进制数字对,表示颜色的红、绿、蓝和 Alpha(透明度)值。例如,完全不透明度的青色将指定为:    <color=#00ffffff>… 另一种选择是使用颜色的名称。这种方法更容易理解,但当然,颜色范围受限,并始终假设颜色完全不透明。   &lt;color=cyan>… 下表中列出了可用的颜色名称。
颜色名称 十六进制值 样本
aqua(等同于 cyan) #00ffffff
black #000000ff
blue #0000ffff
brown #a52a2aff
cyan(等同于 aqua) #00ffffff
darkblue #0000a0ff
fuchsia(等同于 magenta) #ff00ffff
green #008000ff
grey #808080ff
lightblue #add8e6ff
lime #00ff00ff
magenta(等同于 fuchsia) #ff00ffff
maroon #800000ff
navy #000080ff
olive #808000ff
orange #ffa500ff
purple #800080ff
red #ff0000ff
silver #c0c0c0ff
teal #008080ff
white #ffffffff
yellow #ffff00ff

material

这仅对文本网格有用,使用参数指定的材质渲染文本部分。值为 Inspector 显示的文本网格材质数组的索引。

   We are <material=2>texturally</material> amused

quad

这仅对文本网格有用,渲染与文本内联的图像。采用指定图像材质的参数、图像高度参数(以像素为单位)以及另外四个表示待显示图像的矩形区域的参数。与其他标签不同,quad 不会包裹一段文本,因此没有结束标签;斜杠字符放在初始标签的末尾,表示“自动关闭”。

   <quad material=1 size=20 x=0.1 y=0.1 width=0.5 height=0.5 />

这将选择渲染器材质数组中位置的材质,并将图像的高度设置为 20 像素。图像的矩形区域由 x、y、宽度和高度值决定,这些值全部表示为纹理的未缩放宽度和高度的一定比例。

Editor GUI

默认情况下,Editor GUI 系统中已禁用富文本,但可以使用自定义 GUIStyle 显式启用富文本。应将 richText 属性设置为 true,并将样式传递给相关的 GUI 函数:

GUIStyle style = new GUIStyle ();
style.richText = true;
GUILayout.Label("<size=30>Some <color=yellow>RICH</color> text</size>",style);
自动布局
UI 参考