U4S5L20——TMP_TextEventHandler
U4S5L20——TMP_TextEventHandler
本章代码关键字
1 | TMP_TextEventHandler //监听并响应TMP文本中的特定区域或标签的点击和鼠标悬停事件 |
TMP_TextEventHandler
TMP_TextEventHandler
是 TextMeshPro 中提供的一个交互工具类,主要用于处理用户和TMP文本之间的交互事件
主要作用是监听并响应 TMP 文本中的特定区域或标签(如链接 <link>
和特定字符)的点击和鼠标悬停事件
这个类可以让你对文本的某些部分进行交互式操作,适用于创建如 超链接、工具提示、弹出信息 等效果
TMP_TextEventHandler类的使用
TMP_TextEventHandler
是一个继承 MonoBehaviour 的类,它挂载在TMP控件对象下即可工作
它拥有以下的 UnityEvent
事件:
- 链接:
onLinkSelection
—— 当用户悬停超链接时触发 - 字符:
onCharacterSelection
—— 当用户悬停某个字符时触发 - 单词:
onWordSelection
—— 当用户悬停某个单词时触发 - 行:
onLineSelection
—— 当用户悬停某一行文本时触发 - 精灵图片:
onSpriteSelection
—— 当用户悬停某一精灵图片时触发
以上的 UnityEvent
事件都可以在 Inspector 面板上去直接添加某个脚本上的事件
超链接悬停事件
onLinkSelection
会在鼠标悬停在超链接上时触发,它需要如下参数的监听函数:
- 参数一:触发事件的超链接指向的链接内容(即
<link="">
内的内容) - 参数二:触发事件的超链接的显示的文本内容(即
<link></link>
之间的内容) - 参数三:触发事件的超链接在文本中的索引
示例:
1 | public TMP_TextEventHandler tmp_TextEventHandler; |
依次悬停在两个超链接文字上的输出内容:
字符悬停事件
onCharacterSelection
会在鼠标悬停在文本上的某个字符时触发,它需要如下参数的监听函数:
- 参数一:触发悬停事件的字符
- 参数二:悬停的字符在文本中的索引
示例:
1 | public TMP_TextEventHandler tmp_TextEventHandler; |
输出内容:
单词悬停事件
注意,这里的单词划分是依据空格、换行以及部分符号决定的,因此对于中文文本来说,通过该方法获取单词效果不佳!
onWordSelection
会在鼠标悬停在文本上的某个单词时触发,它需要如下参数的监听函数:
- 参数一:触发事件的单词内容
- 参数二:单词首个字符在文本中的索引
- 参数三:单词长度
示例:
1 | public TMP_TextEventHandler tmp_TextEventHandler; |
输出内容:
行悬停事件
onLineSelection
会在鼠标悬停在文本上的某行时触发,它需要如下参数的监听函数:
- 参数一:触发事件的行内容
- 参数二:行的首个字符在文本中的索引
- 参数三:行的长度
示例:
1 | public TMP_TextEventHandler tmp_TextEventHandler; |
输出内容:
图片悬停事件
onSpriteSelection
会在鼠标悬停在文本上的某行时触发,它需要如下参数的监听函数:
- 参数一:触发事件的图片的字符(此字符可能无法直接输出)
- 参数二:图片在文本中的索引
示例:
1 | public TMP_TextEventHandler tmp_TextEventHandler; |
输出内容:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!