Godot Engine 3.2Alpha2
Node类是可以放到节点树的所有类型节点的基类,可以说是Godot工作机制中最核心的类了,其get_node
方法也是节点之间相互调用的最常用工具
get_node
方法即:Node get_node(path: NodePath) const
- 其参数是
NodePath
类型,如果传入的是字符串,也会自动转换成NodePath
NodePath
可以是相对路径也可以是绝对路径,如果阶段不存在则返回null
由于该方法非常常用,所以Godot为它设计了一个语法糖$
,使用方法见下文
范例: 假设在下面这样的节点树上当前节点为Character
:
/root
/root/MyGame/Character
/root/MyGame/Character/Sword
/root/MyGame/Character/Backpack/Dagger
/root/MyGame
/root/MyGame/Swamp/Alligator
/root/MyGame/Swamp/Mosquito
/root/MyGame/Swamp/Goblin
本地编辑视图
运行时,Godot会把当前(主)场景作为系统根节点"root"的子节点,所以运行时的场景树状态如下:
可能的路径:
get_node("Sword") #调用儿子节点
get_node("Backpack/Dagger") #调用孙子节点
get_node("../Swamp/Alligator") #调用兄弟节点
get_node("/root/MyGame") #用绝对路径调用根节点
如果用语法糖$
表示
#调用儿子节点
$Sword
#或
$"Sword"
#调用孙子节点
$Backpack/Dagger
#或
$"Backpack/Dagger"
#调用兄弟节点
$"../Swamp/Alligator"
#用绝对路径调用根节点
$"/root/MyGame"
注意:
- 语法糖
$
既不需要括号 - 访问子节点时可加双引号也可以不加,但是访问父级节点或者根节点时需要双引号
小结 个人建议如果使用$
的话,最好还是后面加上双引号,这样代码的形式比较统一