Godot - Может ли родитель поделиться CollisionShape со своим ребенком? - PullRequest
0 голосов
/ 24 марта 2019

У меня есть узел Rigidbody2D (который требует CollisionShape2D), и внутри него у меня есть узел Area2D (который также требует CollisionShape2D).Когда я создаю 2 из этих CollisionShapes, это нарушает физику.Поэтому я хотел бы иметь только один CollisionShape, но работающий как для физики, так и для запуска действий, когда что-то входит в него.Возможно ли это?

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

1 Ответ

0 голосов
/ 24 марта 2019

Есть ошибка, но из того, что вы написали, я не уверен, что вы все настроили правильно, поэтому давайте начнем с самого начала.

Ваша древовидная структура должна выглядеть так: enter image description here Большой внешний синий квадрат - моя Area2D CollisionShape2D форма, в то время как маленький внутренний синий квадрат - моя RigidBody2D CollisionShape2D форма.

Ваш Area2D должен иметьСигнал настроен правильно (т.е. подключен к сценарию где-то в дереве вашей сцены).Для этого примера я решил поместить свой сценарий на RigidBody2D, и мой сигнал был пойман здесь.enter image description here Как вы можете видеть, я решил поймать любое тело, входящее в мою область.

Теперь, если вы посмотрите на мой код, здесь есть ошибка: вы должны игнорировать свой *Родитель 1018 * RigidBody2D сам, в противном случае он будет продолжать обнаруживать столкновение со своим собственным родителем.

Конечно, лучший способ сделать это - использовать слоев столкновенияи маскирует и не проверяет каждый раз, происходит ли столкновение с родителем или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...