Как рассчитать точку пересечения луча и линии Vector3 - PullRequest
1 голос
/ 13 октября 2019

Этот вопрос касается проекта Unity C #.

Я знаю луч от камеры и вектор нормали в точке попадания.

Луч от камеры использует Camera.main.ScreenPointToRay ();

Я хочуполучить пересечение значений оси Y с различными векторами луча и нормали.

Код и результаты следующие.

Ray ray3 = Camera.main.ScreenPointToRay(new Vector3(540, 0));
Debug.DrawRay(ray3.origin, ray3.direction * 10f, Color.yellow, 5f);

Ray ray4 = Camera.main.ScreenPointToRay(new Vector3(540, 499));
Debug.DrawRay(ray4.origin, ray4.direction * 10f, Color.yellow, 5f);

if (Physics.Raycast(ray3, out hit, Mathf.Infinity))
{
    var normal = hit.normal;

    Vector3 cyanLine = hit.point + normal * 100f;
}

enter image description here

ray3 - нижняя желтая линия. ray4 - это указанная выше желтая линия.

голубая линия - нормальный вектор.

Значения по оси x одинаковы, отличаются только значения по оси y, поэтому две линии пересекаютсядруг друга.

Я хотел бы знать координаты пересечения голубой линии и вышеупомянутого желтого луча.

Как я могу получить это значение. Заранее спасибо.

...