脚本加节点
挂在哪个脚本上,就以这个节点为基础运行。
var s #声明变量
func _ready()
s = Sprint.new() #创建一个节点 原节点类型为Sprint
add_child(s) #把这个节点加入节点树
运行后得到节点名字为:@1,@@2……(在远程而非本地观看)
其实在add_child(s)后省略了一个bool值,原语句为:
add_child(s,false)
如果加入true:
add_child(s,true)
运行后节点名字为:Sprint1,Sprint2…等等
删除节点:
remove_child(s)
在根节点操作
要先找到要在哪个子节点下建立二级子节点
var s
func _ready()
s = Sprint.new()
get_node("Sprint2/2s3").add_child(s) #s3为Sprint2的子节点
$Sprint2.add_child(s) # 简写法,$相当于get_node
pass
var s
func _ready():
s = Sprint.new()
$Sprint2.add_child(s)
s.name = "hello" #给节点命名
pass
删除节点
在根节点运行
var s
func _ready():
s = $Sprint2
remove_child(s)
pass
此方法可以只是断开了这个节点和节点树的联系,但没有从内存中删除这个节点,而且使用remove_child:
s = $Sprint2/s3
remove_child(s)
没办法删除子节点的子节点(s3),只能删根节点下一级的节点。
另一个删除文件的方法queue_free
func _ready():
s.queue_free() #写法比较特殊,变量s在前面
pass
可以既断开联系又删除内存(删除本身),也会删除这个节点及其所有子节点。