0

假设您有多个区域,当一个区域重叠时,您希望脚本获取重叠节点的节点路径。简而言之,您如何获得重叠节点的节点路径。谢谢

4

2 回答 2

0

当您通过 Inspector 从 Node Signals 选项卡连接 area_entered 事件时,该_on_AreaNodeName_area_entered(area):方法将出现在您的脚本中。当某些东西进入您小时候拥有的 CollisionShape 时,它​​将激活,并且该(area)方法的一部分代表进入该空间的任何对象。因此,您可以使用该get_path()方法通过执行找到该对象的路径area.get_path()

为了演示,我用两个带有基本精灵和碰撞形状的 Area2D 节点(AreaGreen 和 AreaRed)制作了一个 2D 示例,并给其中一个标签以显示进入该区域的任何节点的路径:

区域检测示例中使用的节点

我给了 AreaGreen 节点简单的水平移动,然后将 area_entered 信号连接到 AreaRed 节点并编写了这个脚本:

extends Area2D

func _on_AreaRed_area_entered(area):

    $Label.text = area.get_path()

    pass

只需将标签文本更改为相交节点的路径。结果如下:

在区域碰撞之前

区域碰撞后

可以看到,脚本成功找到了节点路径。

于 2018-07-06T00:25:11.613 回答
0

我相信您在区域(area_entered)中处理了一个信号,它将发送与您重叠的区域对象。所以你直接得到那个节点,不需要get_node(nodepath)。

面积2d

于 2018-07-04T13:11:52.103 回答