YugGO
@YugGO

Как мне исправить проблему с RaycastAll?

Есть 4 куба - белый, красный, синий, зелёный.
63496bb2d4ae5579077586.png
С белого в сторону красного куба смотрит луч, пересекая красный, синий и зелёный куб.
63496c0b0cc75567079478.png
И через скрипт:
private void Update()
    {
        RaycastHit[] hits;
        hits = Physics.RaycastAll(transform.position, -transform.forward, 10);
        Debug.DrawRay(transform.position, transform.TransformDirection(-Vector3.forward) * 10, Color.white);
        for (int i = 0; i < hits.Length; i++)
        {
            print(hits[i].transform.name + "__" + i);
        }
    }

Вывожу в консоль название кубов и их индекс. И по логике должно вывести: Red__0, Blue__1, Green__2.
Но мой результат:
63496d8e376da503311374.png
То есть противоположный, что мне делать?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 2
GavriKos
@GavriKos Куратор тега Unity
Нет, не должно:
RaycastHit[] An array of RaycastHit objects. Note that the order of the results is undefined.
https://docs.unity3d.com/ScriptReference/Physics.R...
Ответ написан
freeExec
@freeExec
Участник OpenStreetMap
что мне делать?

Вычислить расстояния до каждого куба и отсортировать по надобности.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы