Когда я запускаю игру, инспектор Unity обновляется каждые несколько секунд, но totalTimeElapsed увеличивается только на 0,1 секунды. Я пробовал подобное с totalTimeElapsed += Time.deltaTime, но с тем же результатом.
Как узнать общее время с начала игры?
float totalTimeELapsed = 0;
int dayCount = 0;
private void Update()
{
totalTimeElapsed = Time.time;
dayCount += 1;
AFunctionTakingLotsOfTime();
}





float totalTime = 0f;
// Update is called once per frame
void Update () {
totalTime += Time.deltaTime;
}
Я считаю, что то, что вы ищете, будет чем-то вроде этого. Предполагая, что этот класс присутствует во время выполнения вашей игры, у вас должна быть точная переменная, которая может указать вам время, прошедшее с момента запуска игры.
Вы также можете знать, что вызов обновления происходит один раз за кадр, т.е. если вы работаете со скоростью 60 кадров в секунду, обновление будет вызываться 60 раз в эту секунду. Вместо этого вы можете попробовать FixedUpdate, который обновляется с интервалами в реальном времени.
which takes you current FPS into account а не с точностью до наоборот? Update вызывается каждый кадр, а FixedUpdate вызывается с фиксированными интервалами в реальном времени независимо от FPS.
Я пробовал это, но это не сработало для функций, которые занимают много времени.
AFunctionTakingLotsOfTime() занимает много времени, вам нужно Time.realtimeSinceStartupTime.realtimeSinceStartup работает в режиме реального времени, а не вычисляет значения частоты кадров и времени, которые, вероятно, путаются из-за того, что ваша функция занимает много времени.
В качестве альтернативы вы можете использовать DateTime.
Обратите внимание, что оба не будут затронуты такими вещами, как шкала времени, и вы можете захотеть изменить свою функцию, чтобы она была менее интенсивной, например, вычисление только небольшого фрагмента любого данного вызова (или с помощью сопрограммы) или путем разделения метода на Тема работы.
Что должно произойти? Что делают
BeginDay,MidDayиEndDay? Что вы имеете в виду подonly increments in a series of 0.1 seconds? Из документы:This is the time in seconds since the start of the game., а такжеTry to avoid regular (frame) use of Time.time. It is more intended to supply the time the game has been running, and not time per frame... так чего вы на самом деле хотите достичь?