--- title: Проекционные лучи (рейкасты) brief: Проекционные лучи применяются для считывания физического мира вдоль линейного луча. Данное руководство объясняет, как это работает. --- ## Проекционные лучи Проекционные лучи применяются для считывания физического мира вдоль линейного луча. Чтобы бросить луч в физическом мире игры, вы предоставляете стартовую и завершающую позицию, а также [набор групп столкновения](/manuals/physics-groups), которые нужно проверить на попадание. Если луч достигает физического объекта вы получите информацию об объекте, в который попал луч. Лучи пересекаются с динамическими, кинематическими и статическими объектами. Лучи не взаимодействуют с триггерами. ```lua function update(self, dt) -- запросить трассировку лучом local my_start = vmath.vector3(0, 0, 0) local my_end = vmath.vector3(100, 1000, 1000) local my_groups = { hash("my_group1"), hash("my_group2") } local result = physics.raycast(my_start, my_end, my_groups) if result then -- реагируем на попадание (см. сообщение 'ray_cast_response' для всех значений) print(result.id) end end ``` ::: sidenote Проекционные лучи игнорируют объекты столкновения, которые содержат стартовую точку луча. Это ограничение библиотеки Box2D. :::