Parent
- 一个节点的
Parent
就是场景树上它的父级
Owner
- 一个节点的
Owner
可以是除自身之外的任意有效的父节点(parent)或者祖父节点(grandparent)即节点树上的上级节点 - 当存储一个节点时它所拥有的节点也都将会被保存
- 如果不修改默认
Owner
的话,可以把它视为节点所在场景的顶部节点,如果该节点本身就是顶部节点那么它的Owner
为null
Owner
extends Node
class_name TestNode
func _ready():
var parent_name = "NULL"
var owner_name = "NULL"
if get_parent() != null:
parent_name = get_parent().name
if owner != null:
owner_name = owner.name
print(name + "'s parent is and it's owner is " )
输出结果
node_3's parent is and it's owner is
node_2's parent is and it's owner is
node_1's parent is and it's owner is
node_0's parent is and it's owner is
实验二:动态创建的节点的Owner
extends Node
func _ready():
var n = TestNode.new()
n.name = ""
add_child(n)
输出结果
's parent is and it's owner is
小结
- 静态生成的节点的默认
Owner
是它的父节点,如果它没有父节点则Owner
- 动态生成的节点的默认
Owner
是null