🛫
【Godot Engine】シーンチェンジ先のシーンに引数を渡す
はじめに
SceneTree.change_scene()
でシーンを変更する時は、変更先のシーンに引数を渡せません。
今回は、AutoLoad
を使用して擬似的に引数を渡す方法を紹介します。
方法
Main.gd
extends Node2D
@onready var Line = $LineEdit
func _on_button_pressed():
Global.text = Line.text
get_tree().change_scene_to_file("res://NewScene.tscn")
Global.gd
extends Node
var text:String = ""
NewScene.gd
extends Node2D
@onready var label = $Label
func _ready():
label.text = Global.text
このコードでは、Main
シーンのButtonを押下した時、
LineEdit.text
の値をGlobal.vb
経由でNewScene.gd
に渡しています。
Global.gd
を複数のシーンを跨いで使用可能にするために、
プロジェクト>プロジェクト設定>AutoLoad
にGlobal.gd
を追加しておく必要があります。
Global.gd
にてノードとして使用できるクラスを継承しておかないと変数の読み書きができない点に注意しましょう。
サンプルコード
参考記事
Discussion