Получение времени рендеринга сцены Unity Game на Android - PullRequest
0 голосов
/ 24 мая 2018

Как получить (и записать) точное время рендеринга ( время, требуемое только для части рендеринга в единстве) сцены в игре "Единство" при запуске на Android ( без использования профилировщика в качестве профилировщика добавит некоторые дополнительные издержки)

1 Ответ

0 голосов
/ 24 мая 2018

Я не знаю ни одного доступного вызова API.Time.unscaledDeltaTime - это реальное время между вызовами на Update() (включая обработку gpu и cpu).Лучшее, что я могу предложить, основываясь на жизненном цикле, связанном в комментариях OP, запустить таймер непосредственно перед частью Render и остановить его сразу после использования:

private void LateUpdate()
{
    StartCoroutine(RenderTimer());
}

IEnumerator RenderTimer()
{
    var started = YourHiResTimerHere.Now;

    yield return new WaitForEndOfFrame();

    var ended = YourHiResTimerHere.Now;
    var gpuWait = ended - started;
}

Имейте в виду, что большинство таймеров C # имеют ужасныеразрешение (в лучшем случае около 20 мс)

...