我有一个子类,它使用来自另一个脚本的方法和变量,即超类。目前,这是通过使用var superclass = get_node("superclass_path")引用超类来完成的。我想要修改它,以便子类脚本扩展超类脚本。我尝试将class_name superclass添加到超类,并将子类中的extends Node更改为extends superclass。然而,当我这样做的时候,突然超类就找不到它的任何节点了,我得到了一个Node not found错误。为什么会发生这种情况?
发布于 2022-03-17 00:57:06
课堂不是一场戏。该类没有任何节点。相反,您可以将脚本附加到节点。
因此,您的superclass附加到一个具有其他节点作为子节点的节点上,您可以获得这些子节点,例如使用get_node("superclass_path")。
然后再做一个extends superclass类。你把它附在哪里?是否将其附加到具有相同子节点的节点?如果没有,那么就没有理由期望get_node("superclass_path")会得到它们。
你可能对场景继承感兴趣。您可以从FielSystem面板的上下文菜单中创建一个从另一个场景派生的场景,并选择“新建继承场景”。继承的场景将包括原始场景(及其节点及其属性,包括脚本)。然后你就可以替换那些属性了。因此,您可以替换继承场景中节点的脚本,如果您希望这样做的话,…并且您使用的脚本可能扩展或不扩展原始脚本。
https://stackoverflow.com/questions/71505792
复制相似问题