Unity UGUI 血条 伤害数字 优化

血条:
游戏开发中,血条位置会因为角色位置改变而频繁进行刷新。这个过程会耗费比较多的性能,下面提出一些小的优化。
1:血条缓存,这个是最基本的,不能因为血条出现一次重建一次,太费了。
2:降低更新频率,可以尝试每五帧更新一次UI。(当然也可以是人物走了多少距离了再更新, 共同使用)
3:将所有血条独立到一个Canvas下,因为一个canvas下的所有UI元素都是合在一个mesh中,如果界面中有大量静态元素会导致mesh重建消耗大的问题。
4:画一个比屏幕更大的矩形区域(比如(screen.width+100, screen.height+100)),超出这个区域再隐藏血条,要不然一个角色在屏幕边缘不断进出那就gg了。
5:隐藏UI的时候不要使用setactive(false)和color.a =0.在UGUI中,将alpha设置为0,在drawcall上不会有任何变化,相当于贴了透明面片,还是会画到场景中。
SetActive的消耗在https://blog.uwa4d.com/archives/QA_UGUI-1.html中的第三节界面切换中比较详细。
Scale = 0,Alpha Group = 0快速隐藏UI,且不会有顶点重建,不会触发激活和经验的额外开销;
6:尽量不要使用outline和shadow,前者增加四倍开销,后者增加一倍开销,会导致UI重建开销明显增大。

伤害 治疗:
moba游戏中,界面上会出现好多伤害数字,治疗数字,暴击数字,各种各样的图片+数字混合体出现,如果这些东西出现重叠的话,是不会动态合批的,下面提出点优化思路。
1:可以将伤害治疗图片放到一个节点下,数字放到一个节点下,这样如果图片在一个图集里面会被合批,数字如果材质相同的话也会被合批。只是这种方法需要多点操作去维护动画。
减少outline的使用,这玩意会让定点数增加4倍,可以整个shader,在shader里面画一下。
2:使用textmeshPro,这是unity的一个插件。因为数字只有0到9嘛,就弄十张图,还有伤害治疗的图片,这样所有东西都是图的话就会自动合批啦。而且这个东西可以实现定制化的效果。
这东西还有向量场,不过outline什么的效果很奇怪。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值