Найти тему
Игровой движок Godot engine

№189. Godot 4. Raycast через код.

В Godot 4 слегка изменили логику, поэтому пробежимся быстро по верхам.
(
версия для Godot 3.x)

Чтобы запустить луч - используем метод PhysicsDirectSpaceState2D.intersect_ray()

cкрипт подключен к смайлу
cкрипт подключен к смайлу

В нашем случае пускаем луч из глобальных позиций смаилика в точку курсора.

Результатом будет словарь из которого мы можем получить такие данные :

  • position: Vector2 # точка касания
    normal: Vector2 # нормаль касания
    collider: Object # Обьект с которым столкнулись или null
    collider_id: ObjectID
    rid: RID # RID
    shape: int # индекс шеипа

Например result.collider.name вернет нам имя ноды с которой столкнулся луч.

Для того чтобы избежать коллизии с самим собой ( в случае если вы пускаете луч с физического объекта) , то в аргументе будет достаточно добавить exclude =[self].

-3

На этом всё.

Ставьте лайк, подписывайтесь на канал, вступайте в группу в ВК, и не забывайте что у нас есть дискорд сервер.
Удачи в изучении годо !