首页 > 解决方案 > 未在继承类中声明的方法

问题描述

我有一个名为 UnitDeckCard 的类。它继承自 DeckCard,后者继承自 TextureRect。我的问题是,在 UnitDeckCard 中,我试图用场景中的节点定义一个 onready var:

onready var cost_label = $CostLabel

但后来我收到一个错误The method "get_node" isn't declared in the current class

我认为,由于 UnitDeckCard 通过继承继承自 Control 类(TextureRect 类),因此 get_node 方法将可用,因为 Control 继承自 Node(get_node 是 Node 方法)。据我所知,我的情况是这样的:

UnitDeckCard < 甲板卡 < TextureRect < 控制 < CanvasItem <节点< 对象。

为什么我不能在 UnitDeckCard 中使用 get_node 方法?

标签: godotgdscript

解决方案


看来我只需要退出项目并再次打开它。我猜是来自 Godot Engine 的某种错误。

我能说的唯一值得注意的是我没有使用直接的类名。UnitDeckCard 使用脚本路径扩展 DeckCard extends "res://deck_card_script_path.gd",然后我开始使用 class_name 并使用类名extends DeckCard而不是使用脚本路径进行扩展。无论如何,不​​知道究竟是什么引发了错误,因为继承应该首先起作用。


推荐阅读