假设您有多个区域,当其中一个区域重叠时,您希望脚本获取重叠节点的节点路径。简而言之,如何获得重叠节点的节点路径。谢谢
发布于 2018-07-04 21:11:52
我相信您在区域(area_entered)中处理一个信号,它将发送与您重叠的区域对象。因此,您可以直接获取该节点,而不需要get_node(nodepath)。
area2d
发布于 2018-07-06 08:25:12
当您通过检查器从Node Signals选项卡连接area_entered事件时,_on_AreaNodeName_area_entered(area):方法将出现在脚本中。它将在某些对象进入您作为孩子时拥有的CollisionShape时激活,该方法的(area)部分表示进入该空间的任何对象。因此,您可以通过执行area.get_path()来使用get_path()方法来查找该对象的路径。
为了演示,我制作了一个2D示例,其中包含两个具有基本精灵和碰撞形状的Area2D节点(AreaGreen和AreaRed),并为其中一个节点添加了一个标签,以显示进入该区域的任何节点的路径:
Nodes used in Area Detection Example
我给了AreaGreen节点简单的水平移动,然后将area_entered信号连接到AreaRed节点,并编写了以下脚本:
extends Area2D
func _on_AreaRed_area_entered(area):
$Label.text = area.get_path()
pass若要将标签文本更改为相交节点的路径,请执行以下操作。结果如下:
正如您所看到的,脚本成功地找到了节点路径。
https://stackoverflow.com/questions/50805513
复制相似问题