ドキュメント

Unity Engine

Unity Engine

コードへのプロファイラーカウンターの追加

Collect specific statistics with profiler counters.
読み終わるまでの所要時間 6 分最終更新 1ヶ月前

プロファイラーカウンターを加えるには、以下を行うスクリプトを作成します。
これらのセクションのコード例では、ゲームオブジェクトのトレイル効果のインスタンスごとに Unity が作成したパーティクルの総数を追跡するプロファイラーカウンターを加えます。これらの例では、ゲームオブジェクトの名前は "Tank "です。

前提条件

一部の例では Profiling Core パッケージ を使用します。これは開始前にインストールする必要があります。Unity Profiling Core パッケージはコアパッケージであるため、Package Manager UI では検出できません。パッケージをインストールするには、以下のいずれかを実行します。

カウンターの作成と定義

新しいカウンターの作成は、以下のように行います。
  1. 新しいカウンターの値の型を定義するスクリプトを作成します。
  2. この型に名前と単位を割り当てます。
**重要:**カウンターを作成するときは、新しいカウンターが属するプロファイラーカテゴリを指定する必要があります。これを行うには、
ProfilerCategory
クラスの既存の Unity カテゴリを使用します。以下の例のスクリプトは、既存の
ProfilerCategory.Scripts
カテゴリを使用しています。
プロファイラーカウンター API は、プッシュ操作とプル操作をサポートします。プロファイラーにカウンターの値をプッシュするか、プロファイラーからフレームの終了時に値をプルできます。
データの変更頻度が低い場合、例えばフレームごとに 1 回などの場合は、
ProfilerCounter
API を使用してカウンターデータをプロファイラーにプッシュします。データがフレームごとに複数回変更される場合は、
ProfilerCounterValue
API を使用します。これにより、プロファイラーが自動的にフレームの終了時に最後の値を取得します。
以下の例のスクリプトでは、"Tank Trail Particles" という名前と ProfilerMarkerDataUnit.Count 単位で
ProfilerCounterValue
TankTrailParticleCount
を定義しています。
public static class GameStats{ public static readonly ProfilerCategory TanksCategory = ProfilerCategory.Scripts; public const string TankTrailParticleCountName = "Tank Trail Particles"; public static readonly ProfilerCounterValue<int> TankTrailParticleCount = new ProfilerCounterValue<int>(TanksCategory, TankTrailParticleCountName, ProfilerMarkerDataUnit.Count, ProfilerCounterOptions.FlushOnEndOfFrame | ProfilerCounterOptions.ResetToZeroOnFlush);}
オプション
FlushOnEndOfFrame
と
ResetToZeroOnFlush
は、自動的にカウンターを Profiler データストリームに送り、フレームの終了時に Count 値を 0 にリセットします。

カウンター値の更新

カウンターの値を更新するには、定義したカウンターの値を設定する MonoBehaviour スクリプトを作成します。
以下の MonoBehaviour スクリプトでは、Update 関数において、割り当てられたゲームオブジェクトに属するトレイルパーティクルの数をフレームごとに数えています。これを行うために、
TankTrailParticleCount
というカウンターを使用しています。
また、以下のサンプルスクリプトでは、Trail Particle System (
m_TrailParticleSystem
) というパブリックプロパティを Inspector に作成しています。
using UnityEngine; class TankMovement : MonoBehaviour { public ParticleSystem m_TrailParticleSystem; void Update() { GameStats.TankTrailParticleCount.Value += m_TrailParticleSystem.particleCount; } }

カスタムプロファイラーモジュールへのプロファイラーカウンターの追加

コードでカスタムプロファイラーモジュールにプロファイラーカウンターを表示するには、新しい
ProfilerModule
スクリプトを作成し、表示するカウンター、名前、アイコンなどのモジュールのプロパティを定義する必要があります。この方法については、プロファイラーモジュールをコードで作成 を参照してください。

追加リソース