読者です 読者をやめる 読者になる 読者になる

渋谷ほととぎす通信

完全趣味でやってるUnityメモ。説明できないところを説明できるようにするための個人ブログ。昨日の自分より少しでも大きく慣れるように。。。 ※所属団体とは一切関係がありません

Unity5.1.2でuGUIパフォーマンスが大きく向上している件


f:id:esakun:20150730215258g:plain

巷ではUnity5.2リリースで盛り上がっている中、

blogs.unity3d.com

今更5.1系の話を持ちだして申し訳ない気持ちでいっぱいなのですが一応共有しておきます。

Unity5.1.1までのバージョンではuGUIのバッチがあまり効いていませんでした。
※バッチとはドローコールバッチングのことで、CPUからGPUに描画するメッシュを送信する時に、まとめることです。これによりドローコールの回数を減らし、CPU負荷を下げると言われています。

そのためSetPassCallsが爆増してパフォーマンスが落ちる現象が見られており、どうしよう。。。負荷高すぎって思っていました。
しかし、5.1.2f1を試したところバッチの効きくようになりSetPassCallsが激減していました。

SetPassCallsについてはコチラを参考にしてください。
早い話、Unity5から採用された新しいパフォーマンス指標です。
※あくまでCPUパフォーマンス指標です
※以前はDrawCallを追っていました

qiita.com

おそらくUnity5.1.2のリリースノート内のコチラの項目がそれに該当していると思われます。

UI: UI 関連のバッチ数が以前のバージョンより増えていた問題を修正

ちなみにバッチされる条件はいろいろあります。

  • 同じMaterial
  • メッシュ数も少なめ
  • スケールは同じ

などなど。
詳しい話はテラシュールさんのブログを参考に。

tsubakit1.hateblo.jp

やっと本来正しくあるべき姿になった感じです。

どのようにバッチされているかは、Unity5から搭載されたフレームデバッガを使用すると1つの描画単位で確認することが出来ます。

おそらくこれらの修正はUnity5.2にも取り込まれているはずなので、Unity5.2に早く乗り換えたい所です。

なぜ今アップデート出来ないかと言いますと、現在使用しているアセットでエラーが起こるためです。
Unity5.2で使用できなくなった関数を使っておりコンパイルエラーが出てしまっています。

これらの修正が対応されたらUnity5.2へレッツゴー!

UnityゲームUI実践ガイド 開発者が知っておきたいGUI構築の新スタンダード

UnityゲームUI実践ガイド 開発者が知っておきたいGUI構築の新スタンダード