こんにちは、Unityエンジニアのオオバです。
先日公開されたテラシュールブログさんのProfilerについての有用な記事。
【Unity】知っておくと少し便利な Profiler に関する小技集 - テラシュールブログ
乗っかる形でオオバが知ってるProfilerについての小ネタを紹介します。
→11万文字で徹底解説した「DOTweenの教科書」Unityアニメーションの超効率化ツールはこちら
任意の処理のCPU負荷を調べる
特定の数行の処理不可を知りたい時が開発中によくあります。
Profiler.BeginSample
とProfiler.EndSample
で処理を挟むと、その間のCPU負荷をProfilerに表示させることが出来ます。
Profilerに表示される名前はBeginSampleの第1引数に文字列で指定します。
サンプルコード
BeginSampleTest.cs · GitHub
ただしProfilerに並ぶ処理数が多いため、自分が仕込んだプロファイルが見つかりづらいです。そんなときは検索機能を使います。

右上の検索窓から処理のキー(今回は「### Sampling ###」)を入力するとその処理が実行されたフレームでプロファイラに表示されます。
このように気になる処理不可を調べるということがサクッと出来るのでオオバは結構使っている小技です。
GPUのフレームタイム表示の落とし穴
こちらUnity5.5以上のバージョン(検証バージョン : 5.5.1p2)で可能となります。5.4系では使用できません。

Unity5.4系(検証バージョン : Unity5.4.1p4)ではGPU Usageがこのような表示になります。
GPU Usageが上手く動かないというときは、Unityのバージョンが解決のヒントになるかも知れません。
Profiler自体が重いという認識を持つ
もはや小技ではなく気持ちの話ですが、Profiler自体が重いです。
ガチガチな負荷検証をする上ではProfilerを起動している事自体が負荷になるということを認識しておいたほうが良いかもしれません。
またDeep Profile
は更に負荷が上がるので、それも心に留めておきたいところです。

まとめ
テラシュールブログさんの記事を読んで、Unity5.6からプロファイルしたデータをSaveとLoadが出来るということを初めて知りました。
ちなみに中の人は5/8 ~ 9に開催されるUnite2017Tokyoでは、Unity5.6のNavMeshについてガッツリお話されるようです。
Unity 5.6よりNavmeshの低レベルAPIが公開され、Navmeshのほぼ全てがコントロール可能になりました。このセッションでは、Navmeshの低レベルAPIを活用する事で実現した高レベルなAPIサンプルの活用方法や、低レベルAPIの内容について紹介します。
NavMeshとは経路探索機能のことです。オオバも先日始めました。
また2017.3.30執筆時点でUnityのバージョンは5.6.0f2。
もうすぐ正式リリースで楽しみです。

この記事が気に入ったらフォローしよう
- Unity5.5.2p2
- Unity5.5.1p2
- Unity5.4.1p4
- Mac OS 10.11.6