Godot笔记2 2023.8.13 脚本添加和删除节点

脚本加节点

挂在哪个脚本上,就以这个节点为基础运行。

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

可以既断开联系又删除内存(删除本身),也会删除这个节点及其所有子节点。

你可能感兴趣的:(godot,笔记,游戏引擎)