Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Timer

继承: Node < Object

倒数计时器。

描述

使用指定的间隔进行倒计时,并在到达 0 时发出信号。可以设置为重复或“一次性”模式。

注意:计时器会受到 Engine.time_scale 的影响,缩放值越高超时越快,反之亦然。

注意:如果想要创建一次性定时器,不实例化节点,请使用 SceneTree.create_timer

教程

属性

bool

autostart

false

bool

one_shot

false

bool

paused

TimerProcessCallback

process_callback

1

float

time_left

float

wait_time

1.0

方法

bool

is_stopped ( ) const

void

start ( float time_sec=-1 )

void

stop ( )


信号

timeout ( )

当计时器到 0 时发出。


枚举

enum TimerProcessCallback:

TimerProcessCallback TIMER_PROCESS_PHYSICS = 0

计时器的更新发生在物理帧中(见 Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS)。

TimerProcessCallback TIMER_PROCESS_IDLE = 1

计时器的更新发生在处理帧中(见 Node.NOTIFICATION_INTERNAL_PROCESS)。


属性说明

bool autostart = false

  • void set_autostart ( bool value )

  • bool has_autostart ( )

如果为 true,定时器将在进入场景树时自动启动。

注意:在定时器进入场景树并启动后,该属性会自动设置为 false


bool one_shot = false

  • void set_one_shot ( bool value )

  • bool is_one_shot ( )

如果为 true,定时器将在达到 0 时停止。如果为 false,它将重新启动。


bool paused

  • void set_paused ( bool value )

  • bool is_paused ( )

如果为 true,定时器会被暂停,并且不再处理,即使调用 start,直到它被取消暂停。


TimerProcessCallback process_callback = 1

处理回调。见 TimerProcessCallback


float time_left

  • float get_time_left ( )

计时器的剩余时间,单位是秒。如果定时器处于非激活状态,则返回 0。

注意:该值是只读的,无法设置。基于的是 wait_time,请使用 start 设置。


float wait_time = 1.0

  • void set_wait_time ( float value )

  • float get_wait_time ( )

等待时间,单位为秒。

注意:计时器在每个渲染帧最多只能发射一次(或者如果 process_callbackTIMER_PROCESS_PHYSICS,则是每个物理帧)。这意味着非常短的等待时间(低于 0.05 秒),将根据渲染的帧速率,会有明显不同的表现。对于非常短的等待时间,建议在脚本中使用一个 process 循环,而不是使用 Timer 节点。计时器会受 Engine.time_scale 的影响,缩放值越高意味着超时越快,反之亦然。


方法说明

bool is_stopped ( ) const

如果定时器被停止,返回 true


void start ( float time_sec=-1 )

启动计时器。如果 time_sec > 0,则会将 wait_time 设置为 time_sec。这也会将剩余时间重置为 wait_time

注意:这个方法不会恢复已暂停的定时器。见 paused


void stop ( )

停止计时器。