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

Godot如何仅通过代码将脚本配置为Autoload自动加载

Godot 纯代码实现无编辑器配置的Autoload方案

Autoload全局单例的本质是引擎启动时自动实例化、挂载到场景树根节点、切换场景不销毁的常驻节点,完全可以通过代码实现全流程配置,不需要打开编辑器的Autoload设置面板手动添加。


核心实现步骤

1. 编写全局单例脚本

首先新建你要作为全局调用的脚本,比如命名为GlobalManager.gd,正常写你需要的全局变量、函数即可:

extends Node
# 示例全局变量
var global_config = {"version": "1.0", "debug_mode": true}

# 示例全局函数
func show_global_tip(content:String):
    print("[全局提示] ", content)

2. 纯代码注册单例(无需编辑器操作)

你不需要在编辑器Autoload列表手动添加这个脚本,只需要在项目默认启动场景的根节点脚本中,添加对应版本的注册逻辑,保证单例在所有其他业务逻辑执行前完成加载即可。

Godot 4.x 注册代码

# 这里的继承类型和你启动场景根节点保持一致,比如启动场景是Node2D就写extends Node2D
extends Node

func _init():
    # 防重复注册
    if Engine.has_singleton("GlobalManager"):
        return
    # 加载单例脚本,路径替换成你实际存放GlobalManager.gd的res路径
    var singleton_script = load("res://GlobalManager.gd")
    var singleton_inst = singleton_script.new()
    singleton_inst.name = "GlobalManager"
    # 挂载到场景树最顶层root节点,和手动配置的Autoload层级完全一致
    get_tree().root.add_child(singleton_inst)
    # 注册到引擎全局单例表,后续可以直接用类名访问
    Engine.register_singleton("GlobalManager", singleton_inst)

Godot 3.x 注册代码

3.x版本没有独立的单例注册API,只要把节点挂载到root节点、设置为常驻不销毁即可实现同等效果:

extends Node

func _enter_tree():
    # 防重复加载
    if has_node("/root/GlobalManager"):
        return
    var singleton_script = load("res://GlobalManager.gd")
    var singleton_inst = singleton_script.new()
    singleton_inst.name = "GlobalManager"
    # 设置切换场景不销毁
    singleton_inst.set_autoreload(true)
    get_tree().root.add_child(singleton_inst)

跨脚本调用方式

注册完成后,你在任意其他脚本文件中,都可以像调用手动配置的Autoload一样直接访问,不需要额外引用、获取节点:

# 任意第二个脚本、任意业务逻辑里的代码
func _ready():
    # 读取全局变量
    print(GlobalManager.global_config.version)
    # 调用全局函数
    GlobalManager.show_global_tip("单例调用成功")

注意事项

  • 注册逻辑必须放在项目最先执行的生命周期中:Godot4推荐写在启动场景根节点的_init()方法,Godot3推荐写在_enter_tree()方法,保证所有其他节点执行_ready()逻辑前单例已经加载完成,避免空引用报错
  • 单例脚本不要手动挂载到任意场景的节点上,防止重复实例化
  • load()方法内的资源路径要和你实际存放单例脚本的res路径一致
  • 如果需要更高的执行优先级,也可以把注册逻辑放到自定义编辑器插件的启动逻辑中,普通游戏项目用启动场景注册的方式完全够用

内容的提问来源于stack exchange,提问作者Résu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 10:54:31