Проверить , что «видит» ли какая либо нода в той или иной точке можно не прибегая к использованию ноды RayCast2D. На этом примере разберемся что к чему : На гифке выше можно заметить что смайлы замечают нашего героя только когда он находится в зоне прямой видимости. Работает это весьма просто : пускаем луч из смайла в координаты нашего героя, и если на пути между смайлом и нашим героем нет препятствий — мы его видим. Код выглядит следующим образом: В качестве результата (result) годо возвращает нам...
В Godot 4 слегка изменили логику, поэтому пробежимся быстро по верхам.
(версия для Godot 3.x) Чтобы запустить луч - используем метод PhysicsDirectSpaceState2D.intersect_ray() В нашем случае пускаем луч из глобальных позиций смаилика в точку курсора. Результатом будет словарь из которого мы можем получить такие данные : Например result.collider.name вернет нам имя ноды с которой столкнулся луч...