Не совсем уверен, как вы запутались - это тот же процесс, который вы делаете, когда смотрите на часы в школе и на работе и решаете, настало ли его домашнее время ..
Вы можете сохранить, когда таймер должен закончиться (сейчас + оставшееся время), или длительность, оставшаяся на таймере, и когда вы в последний раз смотрели.
Итак, когда вы выходите, у вас есть значение таймера - удерживаемое в некоторой форме единиц, позволяет go с секундами. float countdown = 7200f
, то есть 2 часа.
Вы знаете, в какое время вы выходите из игры, как exittime = DateTime.UtcNow
, и вы сохранили это в «где-то», как вам показалось хорошим.
Так что теперь вы Вы загружаете игру обратно таким образом, у вас есть StartTime = DateTime.UtcNow
, разница между выходом и текущим временем, считайте время, которое вы сохранили, и обратный отсчет, и вычтите его из времени начала, с помощью diff = StartTime.Subtract(exittime)
, это возвращает Разница во времени. Затем вы можете сравнить разницу с вашим номером обратного отсчета. так что если diff.TotalSeconds >= countdown
, у вас закончился таймер, иначе countdown - diff.TotalSeconds
- это оставшаяся сумма. Или, если вы сохранили время окончания, totalseconds либо> 0, в этом случае у вас есть столько времени до go, либо 0 или меньше, что означает, что у вас закончился таймер.