Это во многом зависит от того, что вы пытаетесь сделать, но в Unity нет метода .GetRemainingTime ().
Общим решением является использование счетчика в вашей программе, что-то вроде ...
float remainingTimeA = 0f;
IEnumerator MyRoutineA()
{
float duration = 2.0f //Two seconds
remainingTimeA = duration; //Set the remaining time as the duration
while(remainingTimeA > 0f) //While there is still time
{
remainingTimeA -= Time.deltaTime; //Reduce the timer with time between previous and actual frame
yield return null; //Wait for this frame to end
}
}
Что вы можете сделать, так это иметь переменную remainingTimeA
, которую вы можете проверить, если она вам нужна , Вы инициализируете его в сопрограмме с продолжительностью, которую вы хотите подождать. А затем используйте некоторое время, чтобы вручную создать ожидающий каждый кадр.
yield return null
ожидает конца кадра, вместо new WaitForSeconds(duration)
вы просто уменьшаете каждый кадр, в то время как вы уменьшаете свой таймер на Time.deltaTime
это время между каждым кадром. Так что если с момента запуска сопрограммы прошла 1 секунда, оставшееся время должно быть равно 1,0f.
Надеюсь, все понятно.