Движение игрока в Unity исчезло, и игрок поворачивается лицом к мыши - PullRequest
0 голосов
/ 11 октября 2019

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

3D камера, камера находится под углом позади плеера. До сих пор я сделал: сделал «новую плоскость», в которой я использую raycast, все работает, но игрок может наклониться и перевернуться, потому что мой raycast падает на пол, используя Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);

есть ли способ, которым я могу использовать raycast, но заставить игрока оставаться в вертикальном положении, а бросок линии остается в заданной точке, а не падает на пол?

float dist;
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
        if (plane.Raycast(ray, out dist))
        {
            Vector3 point = ray.GetPoint(dist);
            transform.LookAt(point);
            Debug.DrawLine(transform.position, point, Color.red);
        }

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

Камера находится под фиксированным углом, поэтому ее 3d

...