コードへのプロファイラーカウンターの追加
Collect specific statistics with profiler counters.
読み終わるまでの所要時間 6 分最終更新 1ヶ月前
プロファイラーカウンターを加えるには、以下を行うスクリプトを作成します。
これらのセクションのコード例では、ゲームオブジェクトのトレイル効果のインスタンスごとに Unity が作成したパーティクルの総数を追跡するプロファイラーカウンターを加えます。これらの例では、ゲームオブジェクトの名前は "Tank "です。
前提条件
一部の例では Profiling Core パッケージ を使用します。これは開始前にインストールする必要があります。Unity Profiling Core パッケージはコアパッケージであるため、Package Manager UI では検出できません。パッケージをインストールするには、以下のいずれかを実行します。
カウンターの作成と定義
新しいカウンターの作成は、以下のように行います。
- 新しいカウンターの値の型を定義するスクリプトを作成します。
- この型に名前と単位を割り当てます。
**重要:**カウンターを作成するときは、新しいカウンターが属するプロファイラーカテゴリを指定する必要があります。これを行うには、 クラスの既存の Unity カテゴリを使用します。以下の例のスクリプトは、既存の カテゴリを使用しています。
ProfilerCategoryProfilerCategory.Scriptsプロファイラーカウンター API は、プッシュ操作とプル操作をサポートします。プロファイラーにカウンターの値をプッシュするか、プロファイラーからフレームの終了時に値をプルできます。
データの変更頻度が低い場合、例えばフレームごとに 1 回などの場合は、 API を使用してカウンターデータをプロファイラーにプッシュします。データがフレームごとに複数回変更される場合は、 API を使用します。これにより、プロファイラーが自動的にフレームの終了時に最後の値を取得します。
ProfilerCounterProfilerCounterValue以下の例のスクリプトでは、"Tank Trail Particles" という名前と ProfilerMarkerDataUnit.Count 単位で を定義しています。
ProfilerCounterValueTankTrailParticleCountpublic 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);}
オプション と は、自動的にカウンターを Profiler データストリームに送り、フレームの終了時に Count 値を 0 にリセットします。
FlushOnEndOfFrameResetToZeroOnFlushカウンター値の更新
カウンターの値を更新するには、定義したカウンターの値を設定する MonoBehaviour スクリプトを作成します。
以下の MonoBehaviour スクリプトでは、Update 関数において、割り当てられたゲームオブジェクトに属するトレイルパーティクルの数をフレームごとに数えています。これを行うために、 というカウンターを使用しています。
TankTrailParticleCountまた、以下のサンプルスクリプトでは、Trail Particle System () というパブリックプロパティを Inspector に作成しています。
m_TrailParticleSystemusing UnityEngine; class TankMovement : MonoBehaviour { public ParticleSystem m_TrailParticleSystem; void Update() { GameStats.TankTrailParticleCount.Value += m_TrailParticleSystem.particleCount; } }
カスタムプロファイラーモジュールへのプロファイラーカウンターの追加
コードでカスタムプロファイラーモジュールにプロファイラーカウンターを表示するには、新しい スクリプトを作成し、表示するカウンター、名前、アイコンなどのモジュールのプロパティを定義する必要があります。この方法については、プロファイラーモジュールをコードで作成 を参照してください。
ProfilerModule