脚本-分组

随着节点数的增加,一个有用的管理方式是把节点添加到组里。

有两种方法可以做到这一点。第一个通过UI实现,在Node面板下的Groups按钮:

../../_images/groups_in_nodes.png

And the second way is from code. One example would be to tag nodes which are enemies:

(另一种是使用脚本进行添加)

func _ready():
    add_to_group("enemies") 

这样一来, 如果玩家在潜入一个秘密基地时被发现时, 可以通过使用 SceneTree.call_group() 发出的警报声来通知到所有的敌人:

func _on_discovered(): # This is a purely illustrative function.(纯解释性功能)
    get_tree().call_group("enemies", "player_was_discovered") 

上面的代码会使在群组 enemies 里的每个成员都会调用函数 player_was_discovered 。

通过调用 SceneTree.get_nodes_in_group() 也可以获得 enemies 节点的完整列表:

var enemies = get_tree().get_nodes_in_group("enemies") 

类 SceneTree 提供了很多有用的方法,例如与场景、场景中节点的层次、节点分组交互。它让你可以很方便切换场景,重载场景,退出游戏,暂停和继续游戏。它还有一些有趣的信号,如果你有空可以详细去查看!

转载于:https://www.cnblogs.com/empist/p/10199903.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值