GdScript получить путь к узлу при столкновении - PullRequest
0 голосов
/ 11 июня 2018

Скажем, у вас есть несколько областей, и когда одна перекрывается, вы хотите, чтобы скрипт получил путь узла перекрывающегося узла.Короче говоря, как вы получаете пути узлов перекрывающихся узлов.Спасибо

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Когда вы подключаете событие area_entered на вкладке Сигналы узла с помощью Инспектора, в вашем скрипте появится метод _on_AreaNodeName_area_entered(area):.Он активируется, когда что-то входит в CollisionShape, который у вас есть как дочерний элемент, и часть (area) этого метода представляет любой объект, попавший в это пространство.Поэтому вы можете использовать метод get_path(), чтобы найти путь к этому объекту, выполнив area.get_path().

. Для демонстрации я сделал 2D-пример с двумя узлами Area2D (AreaGreen и AreaRed) с базовыми спрайтами и формами столкновений.и дал одному из них метку для отображения пути любых узлов, которые входят в область:

Узлы, использованные в примере обнаружения области

Я дал узел AreaGreenпростое горизонтальное перемещение, затем подключил сигнал area_entered к узлу AreaRed и написал этот скрипт:

extends Area2D

func _on_AreaRed_area_entered(area):

    $Label.text = area.get_path()

    pass

Чтобы просто изменить текст метки на путь пересекающегося узла.Вот результаты:

До столкновения областей

После столкновения областей

Как видите, скриптуспешно найден путь к узлу.

0 голосов
/ 04 июля 2018

Я полагаю, что вы обрабатываете сигнал в области (area_entered), и он отправит объект области, с которым вы перекрыли.Таким образом, вы получаете этот узел напрямую, нет необходимости в get_node (nodepath).

area2d

...