physics-ray-casts.md 1.9 KB


title: Проекционные лучи (рейкасты)

brief: Проекционные лучи применяются для считывания физического мира вдоль линейного луча. Данное руководство объясняет, как это работает.

Проекционные лучи

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

Если луч достигает физического объекта вы получите информацию об объекте, в который попал луч. Лучи пересекаются с динамическими, кинематическими и статическими объектами. Лучи не взаимодействуют с триггерами.

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. :::