WasTabon
@WasTabon

Как пускать Raycast по области?

Даже мб не чисто луч, а что-то типо комп. зрения, чтобы 2д спрайт мог с помощью него проверять попали ли другие объекты в поле зрения (триггер не хочу юзать т.к он буде сквозь стены видеть
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
@NIKROTOS
Начинающий программист.
Обычно для этих целей используют много лучей, или один луч поворачивают в пределах зоны, во всяком случае так обычно описывают поле зрения в игре, вариант описанный в комментарии(с триггером), тоже довольно хорош, он позволит сократить количество вызовов Raycast, до количества объектов в триггере, однако, если в триггер попадёт слишком много объектов, будет перебор в количестве Raycast, многие из которых будут отправляться повторно. Кроме этого в голову лезут только кастыли...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
WasTabon
@WasTabon Автор вопроса
rayShootPos = playerObject.transform.position - transform.position;
hitShoot = Physics2D.Raycast(transform.position, rayShootPos, shootDistance);
if (hitShoot.collider != null)
        {
            Debug.Log(hitShoot.collider.gameObject.name);
            if (hitShoot.collider.gameObject.name == "Player")
            {
                Debug.Log("Player Dead!");
                needToShoot = true;
            }
            else
            {
                needToShoot = false;
            }
        }
        else
        {
            needToShoot = false;
        }

И если needToShoot = true, то будет стрелять. Гавнокод, но как есть так есть
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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