gpt4 book ai didi

godot - 如何从 godot 中的预加载脚本调用变量?

转载 作者:行者123 更新时间:2023-12-05 02:42:57 24 4
gpt4 key购买 nike

当我在 godot 中制作预加载脚本并在其中放置一个变量时,如何在我的其他脚本中调用该变量?

有没有一种特殊的方法来调用我不知道的变量,或者有比预加载脚本更好的方法吗?

最佳答案

如果您正在预加载脚本,例如const item = preload("res://scripts/item.gd") 它作为一种类型。也就是说,您可以将变量声明为它,并创建它的实例。在脚本上声明的变量存在于它的实例中:

const Item = preload("res://scripts/item.gd")
var my_item:Item

func _ready():
my_item = Item.new()
print(my_item.variable)

参见 Custom variable typesClasses and nodes . 顺便说一句,不,Godot 中没有静态变量,参见 Keywords 上的“静态”表。

您可以预加载场景而不是脚本。在那种情况下,你会得到一个 PackedScene , 类似的规则适用。但是你会使用 instance方法。

我建议不要这样做,而是为您的脚本提供一个 class_name。 Godot 将识别它并使其随处可用。参见 Register scripts as classes .


请注意,这不同于访问场景树中另一个节点上定义的变量。如果您尝试访问场景树中另一个节点的脚本中定义的变量,请使用 get_node或类似访问节点,然后你可以访问它上面的变量。参见 Understanding node paths .


如果你需要一个全局变量,你想要的是一个 “singleton” autoload .您可以在项目设置的“自动加载”选项卡中将场景设置为自动加载(选择场景路径,为其命名,然后单击“添加”)。无论场景如何,它们都将在场景树上可用。 他们坚持场景的变化。

由于自动加载在场景树上,您可以使用 get_node 访问它们。该路径将 "/root/" 后跟您给它的名称。例如:

onready var global_variables = get_node("/root/GlobalVariables")

func _ready():
print(global_variables.variable)

关于godot - 如何从 godot 中的预加载脚本调用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67160667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com