勘違い
一つ前の記事で考え違いがあったみたいで、アドバイスを頂きました!
ラベル付きボタン複数を設置する際にDrawCallsを減らす【Unity】【NGUI】 - (:3[kanのメモ帳]
@Kan_Kikuchi 画像AtlasとフォントAtlasが交互に呼ばれてるっぽ。 UIwidgetだったかな?のDepth(だったかな?)をラベルだけまとめるといいなり。ついでにUIPanelのインスペクタからDrawCallのツリーみれますよー。
— naichi (@naichilab) 2014年5月4日
ということで、ちょっと修正記事をば。
Depth
Depthというのはレイヤー設定のことで、重ねる順番を決めるものです。
UISprite(Script)やUILabel(Script)のWidgetで設定する事ができ、描画もこのDepthの順番に行われるようです。
Widget ToolからLabel付きButtonを連続生成
前の記事で最初にやっていたLabel付きButtonを連続生成すると、Depthは作られた順に自動で設定され、描画する時も以下のようにボタンとラベルを交互に描画する事になってしまいます。
ボタン→ラベル→ボタン→ラベル→ボタン→ラベル
ラベルとボタンでは使っているAtlasが違うので、何度も呼び出す事になり、DrawCallsが増えていたんですねー
ButtonとLabelを別々に生成
それで前の記事での改善案としてあげたButtonとLabelを別々に生成した時にDrawCallsが減ったのは、Buttonを三つ作った後にLabelを三つ作ったので偶然、同じAtlas毎にDepthの値が固まっていたんですね(;´ x `)>
ボタン→ボタン→ボタン→ラベル→ラベル→ラベル
改善策
ということで別々に作る必要は無く、同じAtlas毎にDepthを揃えれば(近づければ)、各Atlasが呼び出されるのが一度になりDrawCallsも減らすという事になります。
例えばButtonのDepthは0〜、LabelのDepthは100〜みたいにすれば解決!