Как узнать есть ли в определенном радиусе другой объект?

Идея такова, что враги движутся влево, вправо и должны остановиться если впереди в определенном радиусе присутствует другой объект. Если проще говоря они должны строиться в шеренгу, как солдаты. И вот вопрос, как узнать есть ли в определенном радиусе другой объект?


Ответы (1 шт):

Автор решения: Boronnikov Andrey

Можно пускать Raycast в нужном направлении, чтобы узнать, есть ли что-то на этой линии или нет. Это будет работать только для физических объектов, а большое количество таких операций будет трудозатратным.

Если нужно определять расстояние только среди солдат, то нужно иметь некий класс, который имеет в себе список всех солдат и уже из него получать эвенты, что солдаты сблизились.

Само расстояние между объектами можно получить через их позиции:

Vector3 a = Vector3.back;
Vector3 b = Vector3.down;
var distance = Vector3.Distance(a, b);
→ Ссылка