Godot: new()とinstantiate()
new()
To create a node from code, call its new() method like for any other class-based datatype.
new()は、class-based datatype の node を生成する関数
生成後はどこのシーンにも紐付いてないので、add_child 等する
code:gd
var sprite2d
func _ready():
var sprite2d = Sprite2D.new() # Create a new Sprite2D.
add_child(sprite2d) # Add it as a child of this node.
instantiate()
Scenes are templates from which you can create as many reproductions as you'd like
insntatiate()は、tscn のテンプレートから、Scene 動的に生成する関数
runtime で load するか、コンパイラでpreload するかを選べる。preload できる場合はしておいたほうがUX良くなる
var scene = load("res://MyScene.tscn")
var scene = preload("res://MyScene.tscn")
load() or preload() で返されるオブジェクトは、PackedScene resourceとなる
PackedScene.instantiate() を実行して、実際のノードを生成し、new()の時と同様に add_child()等実行する
code:gd
var instance = scene.instantiate()
add_child(instance)