TextMeshPro的富文本标签
TextMeshPro(简称TMP)的富文本标签(Rich Text Tags)是一套类HTML的标记语法,直接写在文本字符串中,可实现颜色、大小、粗细、斜体、下划线、删除线、上标/下标、对齐、边距、缩进、图文混排、超链接、自定义样式、垂直偏移、透明度、背景高亮、换行等效果,且支持嵌套与动态拼接。
下面按功能分类,给出完整标签说明+可直接复制的示例+效果说明。
一、基础文本样式(最常用)
1. <b> 粗体(Bold)
- 说明:文本加粗,需闭合标签
- 示例:
正常文本 <b>粗体文本</b> 正常文本 - 效果:正常文本 粗体文本 正常文本
2. <i> 斜体(Italic)
- 说明:文本倾斜,需闭合标签
- 示例:
正常文本 <i>斜体文本</i> 正常文本 - 效果:正常文本 斜体文本 正常文本
3. <u> 下划线(Underline)
- 说明:文本下方加线,需闭合标签
- 示例:
正常文本 <u>下划线文本</u> 正常文本 - 效果:正常文本 下划线文本 正常文本
4. <s> 删除线(Strikethrough)
- 说明:文本中间加线,需闭合标签
- 示例:
原价 <s>100元</s> 现价60元 - 效果:原价
100元现价60元
5. <allcaps> 全大写(All Caps)
- 说明:文本强制转为大写,需闭合标签
- 示例:
小写转大写:<allcaps>hello world</allcaps> - 效果:小写转大写:HELLO WORLD
6. <smallcaps> 小型大写(Small Caps)
- 说明:小写字母转为小型大写,需闭合标签
- 示例:
普通文本 <smallcaps>small caps</smallcaps> 普通文本 - 效果:普通文本 SMALL CAPS 普通文本
二、颜色与透明度
7. <color> 文本颜色(Color)
- 说明:支持颜色名、十六进制(#RGB/#RRGGBB/#RRGGBBAA)、RGBA值,需闭合标签
- 示例1(颜色名):
<color=red>红色文本</color> <color=blue>蓝色文本</color> - 示例2(十六进制):
<color=#FF6B6B>浅红</color> <color=#00FF0080>半透绿</color> - 效果:红色文本、蓝色文本、浅红、半透绿
8. <alpha> 透明度(Alpha)
- 说明:仅控制透明度(00=全透明,FF=不透明),自闭合或作用到末尾
- 示例:
不透明文本 <alpha=#80>半透明文本 <alpha=#30>更透明文本 - 效果:不透明文本 → 半透明 → 更透明
9. <mark> 背景高亮(Mark/Highlight)
- 说明:给文本加背景色,需闭合标签
- 示例:
普通文本 <mark=#FFFF00>黄色高亮</mark> 普通文本 - 效果:普通文本 黄色高亮 普通文本
三、字体大小与缩放
10. <size> 字体大小(Size)
- 说明:支持像素(px)、字体单位(em)、百分比(%),需闭合标签
- 示例1(像素):
正常大小 <size=30>30像素</size> 正常大小 - 示例2(em):
正常 <size=2em>2倍大小</size> 正常 - 示例3(百分比):
正常 <size=150%>1.5倍</size> 正常 - 效果:按数值放大/缩小文本
四、上标与下标(科学/化学式常用)
11. <sup> 上标(Superscript)
- 说明:文本上移、缩小,需闭合标签
- 示例:
平方:X<sup>2</sup> 立方:Y<sup>3</sup> - 效果:平方:X² 立方:Y³
12. <sub> 下标(Subscript)
- 说明:文本下移、缩小,需闭合标签
- 示例:
水:H<sub>2</sub>O 二氧化碳:CO<sub>2</sub> - 效果:水:H₂O 二氧化碳:CO₂
五、布局与对齐
13. <align> 文本对齐(Align)
- 说明:作用于后续整段文本,支持left/center/right/justify/flush,自闭合
- 示例:
<align=left>左对齐文本
<align=center>居中对齐文本
<align=right>右对齐文本
<align=justify>两端对齐文本(自动拉伸间距填满行)
- 效果:分别左/中/右/两端对齐
14. <indent> 首行缩进(Indent)
- 说明:首行缩进,支持px/em/%,作用于后续所有行
- 示例:
<indent=2em>首行缩进2字符,后续行也缩进 - 效果:首行及后续行均缩进2em
15. <margin> 左右边距(Margin)
- 说明:文本左右留空,支持px/em/%;可单独用
margin-left/margin-right - 示例:
普通文本 <margin=10%>左右留10%边距</margin> 普通文本 - 效果:指定文本左右留白
16. <voffset> 垂直偏移(Vertical Offset)
- 说明:文本基线上下偏移,支持px/em;正值上移,负值下移
- 示例:
基线文本 <voffset=10>上移10px</voffset> <voffset=-10>下移10px</voffset> - 效果:基线文本 → 上移 → 下移
17. <br> 换行(Line Break)
- 说明:强制换行,自闭合
- 示例:
第一行文本<br>第二行文本 - 效果:
第一行文本
第二行文本
六、图文混排(Sprite)
18. <sprite> 插入精灵图片(Sprite)
- 说明:需提前创建TMP Sprite Asset并放入
Resources/Sprites;支持index(索引)/name(名称)/scale(缩放)/color(着色)/rotation(旋转),自闭合 - 前提:创建Sprite Asset→拖入图集→设置为TMP默认Sprite Asset
- 示例1(索引):
点赞 <sprite index=0 scale=0.8> 收藏 <sprite index=1> - 示例2(名称+颜色):
红心 <sprite name=heart color=#FF0000 scale=1.2> - 效果:文本中插入自定义图标,支持缩放/着色/旋转
七、超链接(可交互)
19. <link> 超链接(Link)
- 说明:给文本添加唯一ID热区,需闭合标签;配合脚本监听点击事件
- 示例:
点击 <color=blue><link="btn_confirm">确认</link></color> 继续 - 脚本监听(C#):
// 注册监听
TMPro_EventManager.OnLinkClick += OnLinkClicked;
// 取消监听
void OnDisable() => TMPro_EventManager.OnLinkClick -= OnLinkClicked;
// 回调
void OnLinkClicked(object sender, LinkClickArgs e) {
if (e.linkID == "btn_confirm") Debug.Log("确认链接被点击");
}
- 效果:“确认”文本变为可点击热区,点击触发回调
八、自定义样式(Style)
20. <style> 自定义样式(Style)
- 说明:提前在TMP Style Sheet中定义样式(如标题、警告),通过名称引用,需闭合标签
- 前提:创建Style Sheet→添加样式(设置颜色、大小、粗体等)→TMP组件指定Style Sheet
- 示例:
<style="Title">这是标题样式</style> 普通文本 - 效果:应用预设的自定义样式(如大号、粗体、蓝色)
九、高级:字体与材质
21. <font> 指定字体/材质(Font)
- 说明:切换字体或材质,需闭合标签;需提前导入字体到项目
- 示例:
默认字体 <font="Arial">Arial字体</font> 默认字体 - 效果:指定文本使用自定义字体
十、通用规则(必看)
- 语法:标签用
<>包裹,闭合标签加/;属性值可加引号(="red")或不加(=red),等号两侧不能有空格。 - 嵌套:支持嵌套(如
<b><color=red>粗红</color></b>),但需正确闭合。 - 优先级:同类型标签后生效覆盖前(如
<color=red>红<color=blue>蓝</color>)。 - 自闭合:无内容标签(
<br>/<sprite>/<align>)无需闭合。 - 启用Rich Text:TMP组件勾选Rich Text选项,否则标签不生效。
常用组合示例(直接复制可用)
// 1. 彩色粗体+删除线
tmpText.text = "<b><color=#FF0000><s>原价:99元</s></color></b> <color=#00FF00>现价:59元</color>";
// 2. 图文混排+上标
tmpText.text = "能量 <sprite name=energy scale=0.9> 100<sup>+</sup>";
// 3. 超链接+高亮
tmpText.text = "请阅读 <mark=#FFFF00><link="link_terms">用户协议</link></mark>";