Hiromuブログ

最近はこちら(https://zenn.dev/hiromu)が本体

MRTK v2 Beta2 DiagnosticsDemoの確認

以前デモシーンの概要をまとめましたが、その中のDiagnosticsDemo(診断システムデモ)シーンの詳細を確認してみました。

www.hiromukato.com

確認環境

シーン概要

  • Diagnostics
    • DiagnosticsDemo
      診断システムを使用して実行時のアプリケーションパフォーマンスを確認するサンプル

シーン詳細

シーンを実行すると以下のような表示になります。fpsと使用メモリ、ピークメモリ、最大メモリが表示されています。

シーン起動時のHierarchyは以下のようになっています。

SceneDescriptionPanel 配下はただの説明パネル用のオブジェクトなので、実質 SceneContent 一つだけががメインのオブジェクトになります。

SceneContentのInspectorを見ると

  • Diagnostics Demo COntrols
  • Speech Input Handler

の2つのコンポーネントが付いています。

以下それぞれの詳細を見ていきます。

Diagnostics Demo Controls

ソースはシンプルな内容となっており、 Diagnostics/Profilerの表示・非表示をトグルで切り替えるためのメソッドがあるだけです。

Speech Input Handler

音声コマンドで先ほどの2つのトグル動作を実現しています。

ここで 「Toggle Profile」、「Toggle Diagnostics」の2つの音声コマンドがKeywordとし登録されていますが、シーン内にはこれらのワードは登録されていません。どこで登録されているのかを探したところ、DefaultMixedRealitySpeechCommandsProfile に登録されていました。

Profileは継承関係を辿るとScriptableObjectから派生したものであることが分かるので、一度作成してしまえば使いまわしができて便利そうです。

<継承関係>

  • ScriptableObject
    • BaseMixedRealityProfile
      • MixedRealitySpeechCommandsProfile

まとめ

Diagnostics Systemはコアシステムとして実装されているので、プロファイラを有効にすることでいつでも表示できるようになります。 アプリケーションのfps、メモリ使用量が特別な実装を必要とせずに確認できるのでお手軽にパフォーマンスチェックができて便利だと思います。 HoloToolkitではFPSDisplayというPrefabを利用して実行時にFPSを確認することが多かったと思いますが、MRTKv2ではDiagnostics Systemを利用することになりそうです。

参考

MRTKに組み込まれている診断システムは VisualProfiler-Unity を組み込んだもののようです。

github.com