该组件是基于Unity2019.4.1f1版本的图文混排组件,实现了静态表情,动态表情,超链接,多图集加载等功能。该组件属于学习用途,不完善的地方可以提取源码自行修改。其中关于超链接点击响应部分关于lua的消息广播如果报错可以自行注释或者删除。该组件核心脚本EmojiText.cs,原理和以往的图文混排组件一样重写Text的OnPopulateMesh(VertexHelper toFill)函数,但是因为unity2019中的某个版本往上的版本unity优化了text,在某些情况下不在存储完整的顶点信息,例如富文本,空格等信息的顶点信息会缺失,该组件规避了这个缺点,文本正则匹配标签的时候替换掉被unity优化的内容去计算顶点和占位符信息,重写OnPopulateMesh函数的时候,同时也去除有可能会被unity优化的顶点信息,这样就可以保证顶点信息的统一,规避了因为unity的优化规则引起的顶点的缺失导致的文本顶点信息计算出现的偏差错漏。
富文本等替换代码:
private string ReplaceRichText(string str)
{
str = Regex.Replace(str, @"<color=(.+?)>", "");
str = str.Replace("</color>", "");
str = Regex.Replace(str, @"<size=(\d)>", "");
str = str.Replace("</size>", "");
str = str.Replace("<b>", "");
str = str.Replace("</b>", "");
str = str.Replace("<i>", "");
str = str.Replace("</i>", "");
str = str.Replace("\n", "");
str = str.Replace("\t", "");
str = str.Replace

这是一个基于Unity2019.4.1f1版本的图文混排组件,支持静态表情、动态表情、超链接和多图集加载。组件适用于学习,可能存在不完善之处,用户可自行修改源码。核心脚本为EmojiText.cs,通过重写Text的OnPopulateMesh方法来处理Unity2019及以上版本中因文本优化导致的顶点信息缺失问题,确保图文混排的准确无误。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



