Проверить , что «видит» ли какая либо нода в той или иной точке можно не прибегая к использованию ноды RayCast2D. На этом примере разберемся что к чему : На гифке выше можно заметить что смайлы замечают нашего героя только когда он находится в зоне прямой видимости. Работает это весьма просто : пускаем луч из смайла в координаты нашего героя, и если на пути между смайлом и нашим героем нет препятствий — мы его видим. Код выглядит следующим образом: В качестве результата (result) годо возвращает нам словарик: {
position: Vector2 # точка касания
normal: Vector2 # нормаль касания
collider: Object # Обьект с корорым столкнулись или null
collider_id: ObjectID
rid: RID # RID
shape: int # индекс шеипа
metadata: Variant() # мета. Не путать с метой объекта
} Т.е если мы запросим result.position то получим точку в которой наш луч касается с нодой. Для того чтобы избежать коллизии с самим собой ( в случае если вы пускаете луч с физического объекта) , то в аргументе будет д