ProfilerRecorder API を使用して、プレイヤーで Memory Profiler モジュールのカウンターにアクセスすることができます。
以下の例には簡単なスクリプトが含まれています。これにより、Total Reserved Memory、GC Reserved Memory、System Used Memory の指標を収集し、それらを GUI.TextArea として表示します。Memory Profiler モジュールの情報は、ProfilerCategory.Memory Profiler カテゴリに属します。
using System.Text;
using Unity.Profiling;
using UnityEngine;
public class MemoryStatsScript : MonoBehaviour
{
string statsText;
ProfilerRecorder totalReservedMemoryRecorder;
ProfilerRecorder gcReservedMemoryRecorder;
ProfilerRecorder systemUsedMemoryRecorder;
void OnEnable()
{
totalReservedMemoryRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Memory, "Total Reserved Memory");
gcReservedMemoryRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Memory, "GC Reserved Memory");
systemUsedMemoryRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Memory, "System Used Memory");
}
void OnDisable()
{
totalReservedMemoryRecorder.Dispose();
gcReservedMemoryRecorder.Dispose();
systemUsedMemoryRecorder.Dispose();
}
void Update()
{
var sb = new StringBuilder(500);
if (totalReservedMemoryRecorder.Valid)
sb.AppendLine($"Total Reserved Memory: {totalReservedMemoryRecorder.LastValue}");
if (gcReservedMemoryRecorder.Valid)
sb.AppendLine($"GC Reserved Memory: {gcReservedMemoryRecorder.LastValue}");
if (systemUsedMemoryRecorder.Valid)
sb.AppendLine($"System Used Memory: {systemUsedMemoryRecorder.LastValue}");
statsText = sb.ToString();
}
void OnGUI()
{
GUI.TextArea(new Rect(10, 30, 250, 50), statsText);
}
}
以下のスクリーンショットは、Tanks! チュートリアルプロジェクトにスクリプトを追加した結果を示しています。
この情報は、Memory Profiler モジュールで使用できる他のハイレベルなカウンターと同様に、リリースプレイヤーで使用できます。選択したメモリのカウンターを Profiler ウィンドウのカスタムモジュールで表示したい場合は、Profiler モジュールエディターを使用してチャートを設定してください。
コードにプロファイラー情報を追加する方法の詳細については、コードへのプロファイリング情報の追加を参照してください。