Sunset
581 字
3 分钟
godot基础:get_node
游戏场景中,还需要一些能够进行节点交互的协调工作,就需要用到get_node(),这一集内容,如果您写过前端开发,相信能够很快上手。
使用场景内的根节点的脚本组织场景内节点的工作
- 使用脚本为节点拓展功能是非常常见的操作,但是脚本过多会让文件变得混乱难以管理,应该尽可能减少一个场景内脚本文件的数目,因此一般只在根节点添加脚本。
举例:当小球触碰到球拍时,球拍发出声音。
- 本质:在area2d节点的脚本命令声音节点工作。
- 前提:需要在area2d脚本中获取声音节点对象。
- 操作:声音节点对象调用播放音乐的函数。
get_node()函数的参数为一个字符串,是该节点的子节点的名称,也就是你要调用的那个节点。
节点信息:
Area2D├── Sprite2D├── CollisionShape2D└── soundvar soundA = get_node("sound")soundA.play()#如此做后,就可以播放一次音效了。#也可以:get_node("sound").play()
#也有更加简洁的写法:$<子节点的名称>.play()#在这里为:$sound.play()get_child()
get_child()也是一个获取子节点的函数,这个语法有些像css的兄弟选择器。括号中期望的参数是一个整数,为第几个节点,例如在上面的节点结构中:
get_child(2).play()别忘了!计算机计数的时候是从0开始的。
get_parent()
当你想要直接获取父节点的时候,可以使用get_parent()可以获取当前节点的父节点。
还记得..用来表示上一级吗?事实上你也可以使用get_node(”..”)来表示父节点
get_children()
get_chi8ldren()可以获取所有直接子节点,俗称 孩子们(
假如有如下节点目录:
Area2D├── Sprite2D├── CollisionShape2D└── sound └── Nodeprint(get_children())
#打印结果为一个数组,且不包含Node节点get_node()的优点和缺陷
优点
- 可以直接获取到对象,再通过对象内部方法或对访问对象内部变量,操作简洁。
缺点
- 使用时必须直到子节点的名称
- 使用get_node获取对象时,如果对象不存在或者函数方法不存在,程序会直接奔溃报错,测试不友好。
godot基础:get_node
https://vilstia.pages.dev/posts/游戏开发/godot/godot基础get_node/