现在这个插件已经不更新了,但是可以通过学习这一种进而类比其他的图文插件
资源:https://pan.baidu.com/s/1sw5dml15uo6CUnIFaU11vw
提取码:v2n9
导入unity然后可以通过右键->UI->candlelight->hypertext来创建
首先来介绍一下,这个插件所具有的功能(实际上都是通过点击事件触发的)
1.
OnClick事件:
将这个事件绑定之后,当点击这个事件之后可以触发绑定的函数
2.
OnEnter
鼠标进入触发(可用于装备信息的显示)
3.OnExit
鼠标离开(装备信息的隐藏)
4.OnPress
鼠标按下
5.OnRelease
鼠标释放
这里都是一些简单的使用,最需要我们注意的是
链接格式
链接格式需要自己设定,但是在设定之前需要提前创建一个HyperTextStyles格式,然后在这里面设定,比如说
再这里面我就是设定了两个格式,一个格式是Class 是Player的,一个格式是Class是Item的,当你设定好这连个Class之后下面的LinkStyles会自动出现他所需要的链接格式,也就是说,我们输入进HypeText中的字符串是需要满足他这个格式,才能被这个插件转换,例如
<a name="link">HyperText</a>
前面的link是刚刚我们设定的Class 后面则是我们要显示的文字
比如说我们要形成这样的一串字符串
<a name = "c:1001:Name" class = "player">Name</a>
例如
"[本地]<a name=\"c:1:1\" class=\"player\">[小娜娜]</a>12123123\r\n"
然后通过String.Split 进行划分,由于我们设定的规则是,如果是以c开头的 代表是角色,所以这串字符串代表的是当前对象是角色,其id是1001,其名字为Name,他的标识是Player(我们之前设定的规则之一(player、item))
hypertext可以自动的将其转换成我们需要的样式
然后,这个显示的链接是小娜娜,如果我们想要点击这个“小娜娜”(链接)出现响应的功能的话,需要我们再脚本中定义这个函数
public void OnClickChatLink(HyperText text,HyperText.LinkInfo link)
{
//图文混排的插件
。。。
if(string.IsNullOrEmpty(link.Name))//当点击的时候,会将链接中的name传进来
{
return;
}
if (link.Name.StartsWith("c:"))//如果以c开头的话,说明是一个角色
{
string[] strs = link.Name.Split(":".ToCharArray());
UIPopCharMenu menu = UIManager.Instance.Show<UIPopCharMenu>();
menu.targetId = int.Parse(strs[1]);
menu.targetName = strs[2];
}
。。。。
}
其中的UIPopCharMenu menu = UIManager.Instance.Show<UIPopCharMenu>();
是显示UIPopCharMenu这个界面,如下
需要说的是,需要将这个函数绑定在HyperText这个插件的OnClick事件上
其他事件的触发也是需要绑定的。
当然这个插件的功能不止于此,如果我们想要制作一些小标比如说上标或者下标这样的效果可以通过HyperTextStyles中的CustomTextStyles修改,同样是通过组合成指定的字符串,然后将HyperText的文本设置即可。
同样也支持特殊表情的制作可以通过QuadStyles与一些图片资源来完成。