一、需求和尝试
今天遇到这样一个需求:在文本中插入超链接,且这个链接可以点击跳转对应的url,具体形式如下图所示。
其实这个有一个简单粗暴的方法,就是把需要加超链接的文本单独拿出来,和其他文本进行拼接,然后在需要加超链接的文本上添加点击事件。但是这样做会对文本适配有很大考验,且文本变换或者修改了,就要重新调整文本的布局。最最关键的是,这种方法对于游戏需要多语言的没有用,因为文本的长短会随着语言变化而动态进行变化,所以这种方法还是pass。
二、解决方案
找了一遍网上的文档,其中不少用Text组件去做的,这种方法确实可以实现文本中添加点击效果跳转超链接,但是当一个文本中有多个超链接时,就会只响应一个,或者点击一个,然后所有点击事件全部响应,没法实现我们需要的效果。
最终确定的方法就是使用TextMeshPro组件来实现
首先unity官方的TextMeshPro组件富文本中就可以添加超链接,其所有富文本标签效果在下面,最后有超链接添加方法
<b>粗体标签</b>
<i>斜体标签</i>
<u>下划线标签</u>
<s>删除线标签</s>
<sup>上标标签</sup>前面后面上标签 5<sup>。</sup>C
<sub>下标标签,如:</sub>H<sub>2</sub>O
<size=48>文字大小</size>
<size=55%>文字大小-百分比</size>
<size=+18>默认大小上再增加文字大小</size>
<size=-18>默认大小上减去指定文字大小</size>
<pos=40>距离左侧的缩进,可以实现类似首行缩进的,文字大小不同这个值缩进程度不同
<color=yellow>颜色标签写法一</color