vkvk
@vkvk

Почему луч выпускается не в ту сторону?

Пытался выпустить луч из одного объекта в другой, но почему-то он выпускается не в ту сторону и я не понимаю почему.
Код:
Ray ray = new Ray(transform.position, cube.position);
        Physics.Raycast(ray);
        Debug.DrawRay(ray.origin, cube.position);

Как выглядит на сцене:
636575aeab23f081261733.png

Что я делаю не так?
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
vabka
@vabka
Токсичный шарпист
1. direction должен быть нормализованным вектором, а не просто позицией чего-то.
2. Если ты хочешь сделать рейкаст в от белого куба к красному, то тебе нужен вектор относительно белого куба, а не от начала координат.

Но вероятно тебе на самом деле нужен Physics.Linecast
Либо:
var direction = Vector3.Normalize(cube.position - transform.position); // Направление к красному кубу.
var start = transform.position;
var ray = new Ray(start, direction);
Debug.DrawRay(ray.origin, direction*1000);
Physics.Raycast(ray);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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