Unity Player 移动 wasd 和 player 旋转以面对鼠标

Unity Player movement wasd and player rotates to face mouse

大家好,我是 Unity 的新手。我正在尝试制作一架带有四处移动的角色控制器的飞机,当您移动鼠标时,玩家将面向该方向。 我成功地使用带有箭头键的 lookat,但鼠标非常接近我可以看到的一个错误,但我不确定如何修复。

这是一个 3d 环境,摄像机在玩家身后成一定角度。 到目前为止我有: 制作了 "new plane" 我投射到它 一切正常,但玩家可以俯身翻转,因为我的光线投射在地板上,使用 射线射线=Camera.main.ScreenPointToRay(Input.mousePosition);

有没有一种方法我可以使用光线投射但设置播放器保持直立并且线投射保持在设定点而不是落地?

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

clamp 函数很好地阻止了播放器翻转。

不过我最后用了一个检测来获取武器高度,然后在跳跃时调整以保持直线。