我不清楚这个想法能否做到.
现在代码是这样的,不过只要在本来能合并drawcall的一系列sprite中进行setMaterial,就会多出drawcall数.
refreshMaterial: function () { if (this._sprite == null) this._sprite = this.node.getComponent(cc.Sprite); let material = this._sprite.getMaterial(0); if (material && material.effectAsset.name == 'sprite-hsl') { material.setProperty('u_dH', this.h); material.setProperty('u_dS', this.s); material.setProperty('u_dL', this.l); this._sprite.setMaterial(0, material); } }