Version: Unity 6.0 (6000.0)
言語 : 日本語
コードへのプロファイラーマーカーの追加
プロファイラーカウンターの可視化

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

プロファイラーカウンターを加えるには、以下を行うスクリプトを作成します。

これらのセクションのコード例では、ゲームオブジェクトのトレイル効果のインスタンスごとに 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);
}

オプション FlushOnEndOfFrameResetToZeroOnFlush は、自動的にカウンターを 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 スクリプトを作成し、表示するカウンター、名前、アイコンなどのモジュールのプロパティを定義する必要があります。この方法については、プロファイラーモジュールをコードで作成 を参照してください。

追加リソース

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