unity RichText

2015年01月13日 09:49 0 点赞 0 评论 更新于 2025-11-21 13:27

在学习 Unity 时,我们会遇到 RichText,即富文本。本文旨在帮助大家更好地了解 Unity RichText,以便在后续使用中更加得心应手。

富文本的用途

这种富文本主要用于 GUI 元素和文本网格,能够结合多种字体类型和大小。GUIStyleGUITextTextMesh 类都具备富文本设置功能,可指示 Unity 识别文本中含有的标记标签。此外,Debug.Log 也能利用这些标记标签增强代码报告错误的能力。需要注意的是,这些标签本身不会显示,而是会将对应的风格变化应用到文本上。

标记格式

该标记系统的灵感源自 HTML,但并不严格遵循标准 HTML 规范。其基本原理是,一对匹配的标签可包含一部分文字。

示例中,标签由“尖括号”<> 以及文本组成。标签内的文本代表标签名称(如示例中的 b)。结尾标签与开头标签名称相同,但需添加 / 符号。这些标签不会直接显示给用户,而是用于定义其所括起来文字的风格。例如,使用 <b> 标签将 “not” 括起来,就会对该单词应用粗体样式,文本将呈现为:

已标记的文本块(包括被标签括入的部分)被视为一个元素,如 <b>not</b>

嵌套元素

可以通过将一个元素嵌套到另一个元素中,为一个文本块应用多种样式。

i 标签用于应用斜体风格,在屏幕上的显示效果如下:

需要注意结束标签的顺序,它与起始标签的顺序相反。这样做的目的是让你更清晰地处理内部标签,确保其不会跨越整个文本的最外层元素。(标签不能交叉包含,只能是一对标签包含另一对标签,而不能只包含另一对标签的一部分。)

显示效果为:

标签参数

某些标签具有简单的效果,开始标签可以携带一些参数。例如,color 标记需要指定要应用的颜色。在开始标签中应用参数的示例如下:

注意,结尾标签不包含参数值。参数值可以用双引号括起来,但这并非必需。

支持的标签

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

<b>

用于呈现粗体文本。

<i>

用于呈现斜体文本。

<size>

根据给定的参数值,以像素为单位设定文字大小。虽然在 Debug.Log 中可以看到该标签的效果,但如果设置的文字大小过大,你会发现窗口栏和控制台的显示效果会变得奇怪。

<color>

根据参数值设置文本颜色,颜色值可以采用传统的 HTML 格式指定。字母对应十六进制数字,分别表示红色、绿色、蓝色和 alpha(透明度)值。例如,青色完全不透明的表示为:

另一种方式是使用颜色名称,这种方式更易于理解且自然,但颜色范围有限,并且总是假定为完全不透明。

可用的颜色名称如下表所示:

<material>

仅用于文本网格,用于渲染具有材料参数所指定的一段文字。该值是文本网格在检视面板材质数组的索引。

<quad>

仅用于文本网格,用于在文本中内嵌图像。它的参数 material 用于指定图片,图片的高度以像素为单位,另外四个参数表示一个用于显示图像的矩形区域。与其他标签不同,quad 标签无需环绕文字,因此没有结束标签,斜杠符号放置在开始标签的结尾表示结束。

该行代码的含义是,材质的位置在渲染器的材质数组中,同时将图像高度设置为 20 像素。用于显示图像的矩形区域的初始位置由 XYwidthheight 的值确定,这些参数非常适合处理宽高不成比例的图片。

作者信息

feifeila

feifeila

共发布了 3994 篇文章