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

我要实现的是通过鼠标按住左键拖动可以使摄像机(也就是视角)在原地能够水平方向360度旋转,上下分别可以达到90度,但是竖直方向一定不能倾斜。通俗的说就像是CS里面的第一人... 我要实现的是通过鼠标按住左键拖动可以使摄像机(也就是视角)在原地能够水平方向360度旋转,上下分别可以达到90度,但是竖直方向一定不能倾斜。通俗的说就像是CS里面的第一人称视角,只不过这个人是不能移动的,即不能前后移动,并且我这里的转动是通过按住鼠标左键来实现的,坐等高人。如果想告诉我用系统自带的脚本,请帮忙先试一下,因为我感觉那些我都试过了,没有我想要的。 展开
 我来答
圈一圈
2013-11-12 · TA获得超过1164个赞
知道小有建树答主
回答量:932
采纳率:100%
帮助的人:1019万
展开全部
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,保证了垂直方向的不倾斜
        }
    }
}



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

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

追问
可不可以我把我的图片发给你,你帮我生成下, 网上好多的办法我都试过了,效果就是和别人认为的不一样,会不会是我的环境或者哪里设置的问题
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式