无法使用 get_node() 定位子标签(GD 脚本)

Unable to use get_node() to locate a Label Child (GD script)

我正在尝试通过附加到其父级“Shadow Settings”(也是一个标签)的脚本来获取我的 Label 节点“ON”。问题是,我一直收到这个错误,

E 0:00:08.208   get_node: (Node not found: "ON" (relative to "/root/ShadowsSettings").)
  <C++ Error>   Condition "!node" is true. Returned: __null
  <C++ Source>  scene/main/node.cpp:1371 @ get_node()
  <Stack Trace> Shadows Settings.gd:15 @ _process()

这是我的代码,

extends Label

var Shadows_On = true

func _process(_delta):

    if not Shadows_On:
        
        get_node("ON").visible = false
        
        get_node("OFF").visible = true

    else:
        
        get_node("ON").visible = true
        
        get_node("OFF").visible = false

func _on_SettingsButton_button_up():
    
    if get_parent().get_parent().get_parent().visible:
    
        if Shadows_On:

            Shadows_On = false

        else:
            
            Shadows_On = true

请帮助我,我已经被困了好几天试图解决你认为很容易解决的问题。

问题是您没有为 get_node 函数提供完整的节点路径。 最简单的解决方法是导出一个变量,这样您就可以通过编辑器设置它的路径。

看起来像这样:

export var label_path = "empty"
onready var my_label = get_node(label_path)

func _process(delta):
    my_label.visible = false

记得在编辑器视图中为 label_path 赋值。