求unity3d,第一人称旋转视角脚本代码,js,C#均可,最好是C#

我要实现的是通过鼠标按住左键拖动可以使摄像机(也就是视角)在原地能够水平方向360度旋转,上下分别可以达到90度,但是竖直方向一定不能倾斜。通俗的说就像是CS里面的第一人称视角,只不过这个人是不能移动的,即不能前后移动,并且我这里的转动是通过按住鼠标左键来实现的,坐等高人。如果想告诉我用系统自带的脚本,请帮忙先试一下,因为我感觉那些我都试过了,没有我想要的。

using UnityEngine;
using System.Collections;

public class FPSCameraControl : MonoBehaviour
{

    public float xAxisRotateMin = -30f;//绕X轴旋转的最小度数限制
    public float xAxisRotateMax = 30f;//            最大

    public float xRotateSpeed = 30f; //绕X轴旋转的速度
    public float yRotateSpeed = 50f;  //绕Y轴旋转的速度


    float yRotateAngle;
    float xRotateAngle;

    void Update()
    {
        if (Input.GetMouseButton(0))
        {
            yRotateAngle += Input.GetAxis("Mouse X") * Time.deltaTime * yRotateSpeed;
            xRotateAngle += Input.GetAxis("Mouse Y") * Time.deltaTime * xRotateSpeed;
            if (xRotateAngle < xAxisRotateMin)
            {
                xRotateAngle = xAxisRotateMin;
            }
            if (xRotateAngle > xAxisRotateMax)
            {
                xRotateAngle = xAxisRotateMax;
            }


            transform.rotation = Quaternion.Euler(new Vector3(xRotateAngle, yRotateAngle, 0));//设置绕Z轴旋转为0,保证了垂直方向的不倾斜
        }
    }
}



上面脚本拖拽到相机上即可。

有什么不懂的可以给我发站内消息。~~~

追问

可不可以我把我的图片发给你,你帮我生成下, 网上好多的办法我都试过了,效果就是和别人认为的不一样,会不会是我的环境或者哪里设置的问题

温馨提示:答案为网友推荐,仅供参考
相似回答