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

Godot中节点路径赋值变量为null?调用play遇空实例错误

问题:AnimatedSprite2D调用play时报空实例错误

我实现了一个从列表中随机选取鱼类的函数,AnimatedSprite2D节点的动画名称与列表中的鱼类名称一一对应,但运行时出现错误:
Attempt to call function 'play' in base 'null instance' on a null instance.

我知道需要补充更多信息来定位问题,想问问还需提供哪些内容?

我的代码

extends Node2D

var rng = RandomNumberGenerator.new()

func weighted_rng(array, weights):
    var number = rng.randi_range(0, 100)
    for weight in weights:
        if weight > number:
            return array[weights.find(weight, 0)]

@onready var bobber = $/Angler/Rod/Bobber
@onready var fish_sprite = $/Angler/Rod/CaughtFish/AnimatedSprite2D

var fishing_pool = ["Tuna", "Clownfish", "Flounder"]
var caught_fish

func _ready():
    pass

func fish():
    caught_fish = fishing_pool[rng.randi_range(0, len(fishing_pool)-1)]
    fish_sprite.play(caught_fish)

节点树结构

节点树层级为:Angler → Rod → CaughtFish → AnimatedSprite2D(对应代码中fish_sprite的路径)

建议补充的信息

  • fish()函数的调用时机:是否在节点_ready()生命周期之前就被调用?(@onready变量要到节点就绪后才会初始化)
  • 节点路径的准确性:检查$/Angler/Rod/CaughtFish/AnimatedSprite2D路径是否完全匹配实际节点树,包括节点名称的大小写、层级关系
  • 节点状态:运行时CaughtFish或AnimatedSprite2D节点是否被禁用、隐藏或删除
  • 动画配置:确认AnimatedSprite2D的动画列表中,是否存在与fishing_pool中完全同名(大小写一致)的动画

内容的提问来源于stack exchange,提问作者Owen Uhl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 09:06:07