UI プロファイラーはゲームの UI に特化したプロファイラーモジュールです。
UI プロファイラーにアクセスするには、Profiler ウィンドウ で Add Profiler > UI または UI Details の順に選びます。
この機能を使用すると、UI バッチ処理、オブジェクトをバッチする理由と方法、UI のどの部分が負荷の原因かなどを理解したり、タイムラインをスクラブするときに UI やその一部をプレビューすることができます。
このプロファイラーは、他のプロファイラーモジュールと同様、リソースにかなり負荷がかかります。
UI Details のグラフには、CPU グラフに似た切り替え可能な Markers グループがあります。
Markers は UI Details グラフでイベントマーカーの表示/非表示を切り替えます。
Detach ボタンは、プレビューを他のウインドウとして切り離します。
2 つのドロップダウンメニューで、プレビューの背景 (黒、白、チェッカーボード) とプレビュータイプ (オリジナルレンダー、オーバードロー、混合オーバードロー) を選択できます。
分析の状況に応じて、マーカーが目ざわりになることがあります。必要に応じて表示/非表示にすることで、チャートの見やすさが向上します。
見やすくするために、プレビューしている UI によってプレビューの背景を選択することができます。 例えば、白い背景に白っぽい UI は読みにくいので、変更することができます。
プレビューを切り離すと、画面配置の管理が容易になります。
オーバードローと混合オーバードローは、UI のどの部分を描画しないかを決定するために使用します。
Marker: マーカーは、ユーザーと UI の相互作用を記録します (ボタンのクリック、スライダー値の変更など …)。それから、可能な場合は、そのデータを垂直の線とラベルとしてグラフに表示します。
Batch: UI システムはドローコールをバッチしようとします。2 つのオブジェクトが一緒にバッチされない理由は数多くあります。
バッチが中断する理由
キャンバスと同一平面でない:
バッチ処理では、オブジェクトの Rect Transform はキャンバスと同一平面上 (回転なし) であることが必要です。
CanvasInjectionIndex:
CanvasGroup コンポーネントが存在すると新しいバッチを強制します。例えば、コンボボックスのドロップダウンリストを残りの部分の上に表示するときなど。
異なるマテリアルインスタンス、矩形クリッピング、テクスチャ、A8 テクスチャの使用:
同一のマテリアル、マスキング、テクスチャ、テクスチャアルファチャンネルを使用するときにのみ、まとめてバッチ処理できます。
ツリービューの行のコンテキストメニューには、find matching object in scene (シーンで一致するオブジェクトを見つける) があります。これは、行をダブルクリックして表示することも可能です。