Чтение данных времени кадра с ProfilerRecorder
Вы можете использовать ProfilerRecorder API для получения пользовательских и встроенных значений счетчика Profiler и для чтения значений FrameTimingManager.
Преимущество этого заключается в том, что при использовании ProfilerRecorder API, FrameTimingManager записывает значения только при подключении записывающего устройства к определенному счетчику. Это поведение позволяет вам контролировать, какие счетчики собирают данные, и уменьшает влияние FrameTimingManager на производительность.
В следующем примере отслеживается только переменная CPU Main Thread Frame Time с переменной ProfilerRecorder API:
using Unity.Profiling;
using UnityEngine;
public class ExampleScript : MonoBehaviour
{
ProfilerRecorder mainThreadTimeRecorder;
void OnEnable()
{
mainThreadTimeRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Internal, "CPU Main Thread Frame Time");
}
void OnDisable()
{
mainThreadTimeRecorder.Dispose();
}
void Update()
{
var frameTime = mainThreadTimeRecorder.LastValue;
// Your code logic here
}
}