您如何将数据传递到选定的场景中

How do you pass data into a chosen scene

假设我们有一个包含多个按钮的主菜单,并且我们有一个文本文件,其中包含按钮 1、按钮 2 等后面的数据....文本数据被加载到字典数组中。

我们正在加载这样的场景:

# Global singleton provides a data set, i.e.
var mydata = [{...}, { ... }, etc...]

# On the main menu scene we have buttons
func _on_Button1_pressed():
    get_tree().change_scene("res://DataList.tscn")
    newscene???.send_data(mydata[0]) # ????

如何将与Button1关联的预加载字典对象传递到即将出现的场景中?

我知道 change_scene() 是“延迟”的,所以我们不能直接为这个场景调用“setter”函数,或者我们可以吗?我还在学习 godot,所以我有点迷茫不知道该怎么做

请注意,我希望在用户按下按钮时“构建”和“重建”新场景,并在用户退出场景时“拆卸”。

# Global singleton provides a data set, i.e.

如果你已经有了autoload (singleton),我会把你想给另一个场景的信息放在那里,让另一个场景读取它。


I understand that change_scene() is "deferred" so we cant just straight away call a "setter" function for this scene, or can we?

正确,你不能。对于加载新场景的瞬间,当前场景已经卸载,因此它不能真正调用新场景的方法。

除非你控制了这个过程。参见 Change scenes manually