You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何手动重启Godot中的一次性Timer并重置为初始Wait Time值

报错原因是time_left为Timer节点的只读属性,仅支持读取当前剩余计时时长,不允许手动赋值修改,因此直接给time_left赋值会触发索引无效错误。

正确重置方案

方案1:未在代码中修改过wait_time时使用

直接调用无参start()方法即可,该方法默认会读取检查器中预设的Wait Time值重启定时器,无论定时器当前处于运行状态还是已触发完毕的一次性定时器,都可直接重置为原始等待时间重新计时:

$Timer.start()

方案2:代码中修改过wait_time、需要恢复初始值时使用

先在节点初始化阶段存储检查器设置的原始等待时间,重置时先恢复wait_time再启动即可:

# 全局变量存储原始等待时间
var original_wait_time: float

func _ready():
    # 节点就绪时读取检查器配置的初始值存储
    original_wait_time = $Timer.wait_time

# 需要重置定时器时调用该函数
func reset_timer():
    $Timer.wait_time = original_wait_time
    $Timer.start()

如果仅需要重置等待时间、不需要立刻启动定时器,调用$Timer.stop()即可,后续调用无参start()时依然会自动使用当前wait_time值计时。


内容的提问来源于stack exchange,提问作者Kyle Pollard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 07:45:06