Daily Archives: 2017-03-17

[Departure from the Void] バッチコール対策実施

バッチコールが最大で20まで跳ね上がってしまっていたので、今日は無駄なバッチコールを減らす対策を施しました。

20170317_1

20170317_2

原因は異なるマテリアルのオブジェクトが交互に重なっていることでした。

今回のゲームの場合、殆どのキャラが黒一色で重なり順序は気にする必要がありません。
そのため、上記の現象を防ぐため1レイヤーに1マテリアルのオブジェクトのみ描画させるようにしました。

改善前のSortingLayerの構成は以下の通り。

20170317_4

特にStageObjectレイヤーで上記の現象が顕著に発生していました。
(自機、敵、敵弾という異なるマテリアルのオブジェクトをこのレイヤーに共存させていたため)

このレイヤーを以下のように細分化しました。

20170317_5

そもそもマテリアルをひとまとめに出来ないかという問題もありますが、今後AssetBundleも使うことを考慮して多数のマテリアルが存在しても無駄にバッチコールが増えない仕組みを目指しました。

これで以下のように10以下までバッチコールを抑えることに成功しました。

20170317_3

これでめでたしめでたしです。