初始化顺序
场景树生成前
注意:场景树生成不代表节点都已完全初始化!!完全初始化工作还有收尾工作 _ready()
从上往下,从外往里,从var
到_init()
。
场景树生成后
从里往外,从上往下,从onready var
到_ready()
。
_ready()
节点默认自带的方法,会在场景树建成后,运行的方法。
onready
会在_ready()
方法运行前运行。
使用节点时,通常希望将对场景部分的引用保留在变量中。由于仅在进入活动场景树时才保证要配置场景,因此只有在调用Node._ready()时才能获得子节点。
var my_label
func _ready():
my_label = get_node("MyLabel")
这可能会有些麻烦,尤其是当节点和外部引用堆积时。为此,GDScript具有onready
关键字,它将成员变量的初始化推迟到调用_ready()
为止。它可以用一行替换上面的代码:
onready var my_label = get_node("MyLabel")