Как вручную перезапустить таймер с одним выстрелом?

#godot #gdscript

Вопрос:

Я добавил таймер с одним выстрелом и подключил функцию прослушивания timeout() сигнала. После того, как в моей игре произойдет какое-то действие, я хочу перезапустить таймер по его первоначальному Wait Time значению.

Я попытался сбросить таймер на тот Wait Time , который я установил в инспекторе, вот так:

 $Timer.time_left = $Timer.wait_time
 

Это приводит к ошибке:

 Invalid set index 'time_left' (on base: 'Timer') with value of type 'float'.
 

Как мне вернуть время в исходное Wait Time значение в инспекторе?

Ответ №1:

Глядя на документацию по таймеру, там говорится, что вы не можете установить time_left свойство и вместо этого должны использовать start :

Примечание: Вы не можете установить это значение. Чтобы изменить оставшееся время таймера, используйте start .

Вызов start без каких-либо параметров перезапускает таймер до его первоначального Wait Time значения:

 $Timer.start()
 

start Метод также принимает необязательный time_sec параметр, который вместо этого может перезапустить таймер на новое время ожидания:

 $Timer.start(0.5)