Unity-EmojiUI更新

这篇博客讲述了作者在Unity项目中实现emoji表达式的经历,包括遇到的问题、对现有开源项目的评估和优化。作者发现并修复了原项目中性能问题,如过多的foreach循环和不必要的new操作,重构了代码,采用richtext的quad占位和spritegraphic渲染。目前的代码已开源并计划进一步改进,例如考虑使用空格代替quad占位和优化渲染方式以减少多余的UI渲染。最后,作者对比了改进后的方案与TextMeshPro的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    项目中可能会用到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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值