@Student_PNIPU

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

Мне нужно сделать несколько лучей для одного объекта. 62cf1674ca3bf663309243.png62cf169fe58ed178893997.png

Я только начал изучать Unity и C# для своего интереса. Хочу сделать определенный угол обзора для капсулы, но не понимаю как это сделать.
Я попробовал сделать четыре луча, которые исходят от объекта. Но неужели нужно прописывать каждый луч отдельно?
А если я хочу сделать не 4 луча, а 15? Придется все 15 лучей прописывать вот так?
Может есть более красивый и легкий вариант?

Я уже пытался искать информацию, но чаще всего везде встречаются другие методы, но мне интересно разобраться именно в работе рэйкастов.
[SerializeField] private float Delta_Range;
    void FixedUpdate()
    {
        Ray _ray_0 = new Ray(transform.position, transform.forward);
        Ray _ray_1 = new Ray(transform.position, -transform.forward);
        Ray _ray_2 = new Ray(transform.position, transform.right);
        Ray _ray_3 = new Ray(transform.position, -transform.right);
        Debug.DrawRay(transform.position, transform.forward*Delta_Range, Color.yellow);
        Debug.DrawRay(transform.position, -transform.forward*Delta_Range, Color.yellow);
        Debug.DrawRay(transform.position, transform.right*Delta_Range, Color.yellow);
        Debug.DrawRay(transform.position, -transform.right*Delta_Range, Color.yellow);
    }
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 1
PragmaGames
@PragmaGames
Увлекаюсь Unity.
Ты можешь использовать Physics.OverlapSphere. Дальность рейкаста будет дальностью видимости персонажа в твоем случае. После из всех полученных объектов найдешь тех которые попадают в поле видимости.

private bool IsVisibleTarget(Vector3 target)
{
       directionToTarget = (target - myTransform.position).normalized;
       return Vector3.Angle(entityTransform.forward, directionToTarget) < _viewAngle / 2;
}


_viewAngle угол обзора твоего персонажа.

Я думаю такой метод самый оптимальный.

Если говорить про твой метод то тебе через цикл нужно пускать лучи с определенным смещением. Минус твоего метода в том что чем дальше объект и больше обзор тем больше лучей придется выпустить с меньшим смещением.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы