版本:2.2
场景如图所示,每个建筑就是一个node,而建筑的图片、建筑的阴影、建筑的绿色底盘 是分开的,而调试了两天也没有解决这三个合批的问题。
逻辑是这样
创建建筑的整体node—>标记需绘制建筑图片—>标记需绘制建筑底盘—>标记需绘制建筑阴影,也就是说建筑创建的时候并没有实际加载任何图片
等待所有建筑完成,在update中遍历所有建筑,开始加载图片(图片加载时为同步操作,图片已预存在内存中,同时,建筑图片、阴影、底盘 都分别是静态图集)。
如果有某个建筑有绘制建筑图片的标记,则此次update只加载所有的建筑图片,完成后去掉建筑图片标记。
同理,底盘和阴影一样的方式,这样的处理方式为了保证 同一时间在做同一个类型的加载操作,也就是为了保证合批。
建筑buildNode关系是
建筑图片 buildNode._sprite
底盘 buildNode._bottom
阴影 buildNode._bottom._shadow
神奇的地方来了,如果三个加载注释掉其中一个,就能实现合批,三个全打开就会导致drawcall崩到一千多。
3个加载同时打开

2个加载
放上log证明加载操作是批量的




