项目中可能会用到emoji表情,所以这几天针对这个模块进行了制作和整理。
首先,在网上进行简单的搜索查找现成方案,主要搜索结果为textmeshpro和github上的一些emoji项目,因为闭源的关系,这里先跳过textmeshpro(暂时不想反编译╮(╯▽╰)╭)。所以目标定为github上的emoji项目,看到了这个项目:https://github.com/coding2233/TextInlineSprite。看到了上面的示意图片,感觉基本够了,so下载下来看了看,运行了example,觉得基本也差不多,然后依赖文件不多,非常轻量,遂决定查看下代码,然后可怕的事情就发生了~:
在代码中我发现了这个:
大哥 - -,这么多foreach 你让低版本的unity开发者用了怎么玩啊,,然后清空的previousdata的时候每次new一个,而不循环复用?,那你gc可真的是很棒棒哟。。
Next:
每次都new新对象,搞个pool不是更好?还有坐标系转换的一些问题,这里也不做阐述,类似的性能问题非常严重。。代码结构问题也就不说了。。
所以直接使用它的代码是我所不能接受的,所以改!
然而改代码就需要理解原作者的思路,并没有看他的博客什么的,从源代码进行分析,思路如下:使用richtext中的quad为表情占位(这里使用预先生成好的spri