EntityTreeTimer
Одноразовый RefCounted-таймер, созданный EntityTree.CreateTimer.
Не является Entity: его не нужно добавлять через AddChild или удалять QueueFree. Дерево отсчитывает время и испускает Timeout, затем удаляет таймер из своего списка ожиданий. Оставшаяся ссылка на объект не превращает его в повторяющийся Timer.
При CreateTimer processAlways по умолчанию true, поэтому ожидание завершается и при Paused. Для игрового ожидания передайте false. processInPhysics и ignoreTimeScale — отдельные параметры, не синонимы processAlways. Изменение TimeLeft у уже завершённого объекта не регистрирует его в списке дерева заново.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Свойства1
TimeLeftСвойство
public double TimeLeft { get; set; }Оставшееся время одноразового ожидания. Изменение после завершения не добавляет таймер в очередь дерева заново.
Методы2
GetTimeLeftdouble
public double GetTimeLeft();Возвращает текущий остаток, ограниченный снизу нулём, как свойство TimeLeft. Чтение не запускает новое ожидание.
doubleОстаток в секундах, не меньше 0.
SetTimeLeftvoid
public void SetTimeLeft(double time);Заменяет остаток у существующего объекта. Если таймер ещё в очереди дерева, влияет на следующее обновление. После Timeout не возвращает объект в очередь и не создаёт новый цикл. Для нового ожидания используйте CreateTimer.
| Имя | Тип | По умолчанию |
|---|---|---|
time | double | — |
timeНовое конечное время в секундах. Отрицательный остаток читается как 0; завершение очереди обрабатывается деревом, а не синхронным вызовом сеттера.
Сигналы и события1
TimeoutСобытие
public event Action Timeout;Одно автоматическое истечение ожидания, созданного CreateTimer. Аргументов нет. После доставки дерево удаляет таймер из своей очереди; сохранённая ссылка на объект не делает его повторяющимся.