求教draw call 优化

请问各位大大,这种情况怎么降低draw call
一行是一个prfab 里面有label 可以想办法把数字改成图片
但是这种妮称有什么办法处理么
现在打开这个就是一百多draw call
低端机用户说打开这个有点卡,难受

1赞

还有这个头像也是在线加载的图片,有什么办法处理吗

@panda @jare

1.复用item,可以参考 有个scrollview优化的帖子
2.将昵称提取出来,不要放在prefab里,拼接成一个高度很大的字符串,通过换行来隔离每个昵称,不过这种得让item的高度和label的文字高度成整数比例
3.数字可以用bmfont
4.还有就是drawcall的通用优化了,相同图集的尽量放在一起

所有Item初始化后 分到不同的层,类似下面这样

scrollview
|_view
|   |_content
|      |_content_default     (初始化item放这里,label以下的同图集图片) dc = 1
|      |_content_default     (头像放这层)                            dc = 当前显示头像数量
|      |_content_headbox     (头像框放这层,label层级以上的图片)       dc = 1
|      |_content_label       (所有label提出放这层)                    dc = 当前显示label数量

理想状态是 dc = 当前显示label数量 + 当前显示头像数量 + 2
当然,也可以用zIndex来分层

当然除了昵称外,其它的 字母、数字和符号 还是建议用位图字体,可以减少部分dc。

你的这个页面优化完估计就30dc不到

昵称不放在预制里, 单独拿出来统一放在一个节点下, 然后定位到对应位置, 其他尽量用图集, 位图字体

这样有点把结构搞乱,要删除一行还得到处找,滚动条滚动还要位置跟着跑,太累了吧

帮我看看这个呢,一个桌子5个dc,把文字和数字做成图,应该可以变成1个dc,但是隐藏一个凳子的同时显示一个头像,这个时候多一个头像会多3个dc,才十几个头像,瞬间就变成100多了,有点尴尬哦

桌子结构图

这种一个桌子10个头像,
一个界面大概可以显示6桌
在线头像,咋个弄啊,瞬间增加好多dc哦

不可以用固定的头像吗?就是一共就10几个头像让玩家选,这些放一个图集,你的头像走下载到游戏路径读取,是散图加载这么多就回增加call 数量

我倒是想啊,需求不给力啊

升级版本 动态合图 不纠结

二货,弄死

需求不给力,求解救

使用和上面相同的思路即可,不过头像你还是不要使用mask了,用shader处理吧(1个头像+1dc)。应该可以控制到3dc到60dc。

头像做缓存。prefab预加载, 列表元素不要那么多,必要的话分页加载

你可以参考这篇文章
https://forum.cocos.com/t/cocos-creator-scrollview-1/79767