Вы можете нарисовать этот луч как:
Debug.DrawRay(ray.origin, ray.direction);
или
Debug.DrawRay(Camera.main.transform.position, Camera.main.ScreenPointToRay(Input.mousePosition).direction);
Вариант 1 является более прямым, когда вы определили свой луч, но вариант 2 дает вам больший выборпоиграйте, если окажется, что этот Луч ведет себя не так, как вы ожидаете.
camera.ScreenPointToRay
ожидает Vector3
, но Input.mousePosition
возвращает Vector2
.Документы Unity для Vector3 и Vector2 показывают, что вы должны иметь возможность использовать Vector2 как Vector3 неявно, и он заполнит компонент z как 0, но если Debug.DrawRay
показывает, что луч - это проблема, то вам нужно добавить0. Может быть что-то вроде:
Ray ray = Camera.main.ScreenPointToRay(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0));