(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!

    

Depthを設定する事によりNGUIでDrawCallsを減らす【Unity】【NGUI】


このエントリーをはてなブックマークに追加


勘違い


一つ前の記事で考え違いがあったみたいで、アドバイスを頂きました!

ラベル付きボタン複数を設置する際にDrawCallsを減らす【Unity】【NGUI】 - (:3[kanのメモ帳]



ということで、ちょっと修正記事をば。


Depth


f:id:kan_kikuchi:20140504201245p:plain

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〜みたいにすれば解決!