游戏制作注意细节

一、UI元素合并的规则AABBCC:

ABC三个节点里分别里面都有sprite,AA代表两个节点里的图是一样的,或者是来自同一个图集(Atlas)。这样的节点排序情况下,会产生3个drawcall,如果是ABABAC,这样的排序是6个drawcall。如果想减少drawcall就尽量用含相同图集的节点排序相邻,或者包含子同一个节点里,中间不能有label或者不同图集或者不同的纹理,否则渲染会被打断。
2.第二个坑rgba不一样,类型不一样,都不会进行渲染合并,drawcall自然会高居不下,比如sprite的type不一样,一个是sliced,一个是simple,是不会合并到一起的,就算两个sprite是来自同一个图集,也是分两次渲染,算两个drawcall…所以,想要两个节点甚至两百个节点只产生一个drawcall…只能让他们都是同一个type的sprite,type都是simple或者都是xxx…并且来自同一张图集的,或者是同一个纹理(同一张图),最后,他们的节点树中,这两百个节点,中间不能包含有label、或者其他的纹理和其他图集的图等,否则渲染就被打断了,就可能会产生2个3个…甚至200个drawcall,drawcall的多少关键在于节点包含的sprite在渲染的过程中,你在他们相邻的节点中,哪里打断了他们,打断后,如果后面的sprite全是一样的,他们还是会进行渲染合并的,只是中间被中断了。比如:
AAABAAA ------> 这样是算3个drawcall
AABAAAA -------> 这样也是算3个drawcall
AABABAA -------> 这样就算5个drawcall

小结:渲染合并很容易被打断…太难了像背包、游戏战斗场景,怪物多,或者是背包的物品里包含的纹理多等等的情况下,drawcall会很高掉帧的情况就会很严重,不过也看手机~像iphoneXS,就算400 drawcall也不会有很直观的感受~ 中低端手机就惨了,卡成狗。 我也是自己用demo去测试了一下,模拟了下现在做的项目的情况,找出了项目的瓶颈所在,上面的看不懂小伙伴或者新手建议自己去用一个简单的demo去测试一下就清晰明白了~

二、UI元素资源位置:

对于一个界面的UI所用的的资源要放在一个单独的文件夹内,这样可以打包在一个图集内,加载速度快。

三、UI动态修改尺寸:

对于需要在代码中动态修改尺寸的UI元素,不要在编辑时设置UI的尺寸

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想做后端的前端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值