假设您有多个区域,当一个区域重叠时,您希望脚本获取重叠节点的节点路径。简而言之,您如何获得重叠节点的节点路径。谢谢
问问题
853 次
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)。
于 2018-07-04T13:11:52.103 回答