创建AutoLoad脚本时遇'Invalid get Index "runnig"'空实例错误求助
解决Invalid get Index 'running': (on base: 'null instance')错误
这个错误的核心是你代码里的dialogue_box是null实例——也就是找不到对应的节点对象,导致访问running属性失败。以下是具体排查和解决步骤:
1. 修正节点路径(若未使用AutoLoad)
- 确认你的Control节点下确实存在
CanvasLayer/DialogueBox的层级结构,路径的大小写、拼写必须和Godot节点名称完全匹配(Godot路径区分大小写)。 - 可临时添加调试代码验证:
print(dialogue_box),运行后若输出null,说明路径错误,需重新核对节点层级。
2. 正确访问AutoLoad实例
如果DialogueBox是设为AutoLoad的节点/脚本,不能用节点路径$CanvasLayer/DialogueBox获取,需直接使用AutoLoad的全局名称:
- 打开项目设置→AutoLoad,查看你配置的AutoLoad条目名称(比如名称为
GlobalDialogue) - 代码里替换为全局名称调用:
extends Control var playing_intro : bool = false func _ready(): playing_intro = true if !GlobalDialogue.running: GlobalDialogue.start()
3. 检查属性拼写与定义
错误提示里出现runnig(少一个字母n),请确认:
- 你代码里写的
running拼写正确 DialogueBox脚本中确实定义了running属性(比如var running: bool = false)
4. 处理场景加载时机问题
如果场景是动态加载的,可能在_ready()执行时DialogueBox还未初始化,可把逻辑移到_process中并加判断:
func _process(delta): if playing_intro and dialogue_box != null: if !dialogue_box.running: dialogue_box.start() playing_intro = false # 避免重复执行逻辑
5. 验证AutoLoad配置
- 检查项目设置→AutoLoad中的条目:
- 脚本路径是否正确指向
DialogueBox的脚本文件 - 条目是否勾选了
Enable - 名称是否和你代码中使用的一致
- 脚本路径是否正确指向
内容的提问来源于stack exchange,提问作者Creator754915
相关产品推荐
相关产品推荐

