脚本-分组

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

有两种方法可以做到这一点。第一个通过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 提供了很多有用的方法,例如与场景、场景中节点的层次、节点分组交互。它让你可以很方便切换场景,重载场景,退出游戏,暂停和继续游戏。它还有一些有趣的信号,如果你有空可以详细去查看!

posted @ 2018-12-30 16:46  宸少凌  阅读(261)  评论(0编辑  收藏  举报

万年以来谁著史,三千里外欲封侯