Найти в Дзене
Игровой движок Godot engine

№91. Получение инфы по взаимодеиствию объектов типа body (kinematic, rigid)

Эта нода не используeт сигналы для определения данных по взаимодействию c окружающими его физическими телами. Получить данные можно через методы move_and_slide или move_and_collide. Разберем основные ситуации: KinematicBody + Move_and_Collide При использовании метода move_and_collide(), мы можем получить информацию при помощи свойств collider. Например в нашем случае мы получаем имя статичного объекта при касании. Тут нельзя получить больше одного касания одновременно. KinematicBody + Move_and_Slide В этой конфигурации при соударении с каким либо телом, для определения нод используется уже цикл. В котором определяются те, или иные данные для вывода. В нашем случае опять же, мы выводим имена препятствий. Для начала получаем количество объектов с которыми мы столкнулись через get_slide_count(). И затем в цикле через get_slide_collision получаем collider.name. RigidBody Для определения того, с чем столкнулось это тело, нужно использовать сигнал body_entered().
Но чтобы все сработало , нео
Оглавление

Начнем с KinematicBody.
Эта нода не используeт сигналы для определения данных по взаимодействию c окружающими его физическими телами.

Получить данные можно через методы move_and_slide или move_and_collide.

Разберем основные ситуации:

KinematicBody + Move_and_Collide

При использовании метода move_and_collide(), мы можем получить информацию при помощи свойств collider.

Например в нашем случае мы получаем имя статичного объекта при касании.

-2
-3

Тут нельзя получить больше одного касания одновременно.

KinematicBody + Move_and_Slide

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

-4
-5

Для начала получаем количество объектов с которыми мы столкнулись через get_slide_count(). И затем в цикле через get_slide_collision получаем collider.name.

RigidBody

Для определения того, с чем столкнулось это тело, нужно использовать сигнал body_entered().
Но чтобы все сработало , необходимо включить Contact Monitor, и увеличить значение Contact Reported.

-6
-7

Надеюсь вам был полезен этот материал.
Подписывайтесь на канал, и
вступайте в группу в ВК.