【问题标题】:Unable to use get_node() to locate a Label Child (GD script)无法使用 get_node() 定位子标签(GD 脚本)
【发布时间】:2021-11-02 16:18:18
【问题描述】:

我正在尝试通过我附加到其父级“影子设置”(也是一个标签)的脚本来获取我的标签节点“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

请帮助我,几天来我一直在试图解决您认为很容易解决的问题。 ????

【问题讨论】:

  • 谢谢你,Sode 和 Theraot,你们用这些信息拯救了我的游戏!我正准备放弃这个想法!

标签: game-development godot gdscript


【解决方案1】:

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

看起来像这样:

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

func _process(delta):
    my_label.visible = false

只需记住在编辑器视图中为 label_path 分配一个值。

【讨论】:

  • 使用NodePath 导出而不是String ("empty")。例如export var label_path:NodePath.
猜你喜欢
  • 2016-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-12
  • 1970-01-01
  • 1970-01-01
  • 2020-11-14
  • 1970-01-01
相关资源
最近更新 更多