[Unity] MaterialPropertyBlockで色を変えたらドローコールが増えた

確かにマテリアル"は"増えません。

なのでMaterialPropertyBlockを使っておけばバッチも効いてるんだろうとたかをくくっていたら見事に処理落ちしました。
もちろん同一メッシュ&同一マテリアルの条件は満たしてます。

ブロック崩しで、ボールがぶつかったらちょっとだけ色が変わる処理にMaterialPropertyBlockを使用。だいぶ後になってからBatchesが荒ぶっていることに気づく。

色の変更ONの場合。色の変更のあったブロック(Squere)がバラバラに描画されている。

色の変更OFFの場合。一括で描画。


ここを見る限りバッチングが効いている上で色変更もうまく動作しているように読めるんだけど、僕のプロジェクトではうまく動作してくれません。状況がだいぶ込み入ってきたので違う要因もあるのかもしれないけど。

MaterialPropertyBlockを使うとバッチング対象から外されるって認識で先に進んでいいかなぁ。

ロジック作り直すのめんどいな...

コメント