【muzzik教程】50行代码,教你优化列表draw call!【网格、横、纵 全包揽】

是真好用!!!

不知道是不是我的使用方式不对,我挂在scrollview节点上,刚打卡页面初始会透明度全 为0,要有滑动才显示内容,是哪里不对吗?cocos版本是2.4.6。

onLoad内执行的首次更新,如果更新时scrollView内的item不在可视区域内那么就会这样,检查下item的坐标

噢噢,我关闭的时候没有还原item的坐标,现在设置了scrollToTop就可以了,谢谢!

先mark一下。。

循环列表不得行呀,scrollview 抖动腻害,再动态修改位置 就更厉害了

这是说 不在可视范围内 的组件为完全透明,这样可以提高显示帧率?
那这个功能应该做到引擎层面呀!

1.x 时代是这样的,但是对于一些项目,要的就是实时渲染,所以2.x时代,官方修改了,个人认为这才是正确的,如果不需要,就自己设置就好了。

碰撞检测的思路点赞

大佬,新手一枚,用了你的插件,纵向是可以减少dc了,但是横向貌似没用,dc没减少,求解

  1. item 数量不够多
  2. this.node.scroll_view.content.parent 尺寸错误

感谢,我用力拉出屏幕dc可以下降,回弹回来又恢复了,数量刚好超出屏幕80多个像素吧

mark一下

有个疑问啊,难道滚动子控件的循环利用 不会比你这种方法好吗?例如 可视区域内最多显示8个item ,我用10个item 通过修改位置 数据刷新的方式 达到和tableview一样的效果,这种方式不会更好吗 ?,你这样隐藏显示的 实际上还是创建了,我有100条数据,难道就一定要创建100个item?

不过你这种检测碰撞思路是很好的 点个赞

当你项目已经开发完了,发现很多列表都需要替换成自定义循环列表组件,那你就会发现工程量的巨大,这个可以在不影响项目原本代码的情况下使用

这个可以使用【循环列表+item分层】实现,如果是新项目,你这个item节点可以优化到6,7个,drawcall也能降低到10个左右

使用碰撞优化的代价只需要添加组件,循环列表和分层呢

分层修改源码就好了,连组件都不用添加。循环列表的话可能要做一下封装,只不过我这是针对新项目来说的,如果只是对老项目来说的话,你这个优化方案确实不错

渲染分层

  1. 修改源码不管渲染前后次序?
  2. 每个 creator 版本都能通用?

循环列表

  1. 需要按照规定添加组件,配置属性,固定代码使用
  2. 那种几千行代码的出现问题排查困难
  3. 横竖网格支持不好

适用方向不一样,前面我早就说过了

1赞