求unity3d,第一人称旋转视角脚本代码,js,C#均可,最好是C#
我要实现的是通过鼠标按住左键拖动可以使摄像机(也就是视角)在原地能够水平方向360度旋转,上下分别可以达到90度,但是竖直方向一定不能倾斜。通俗的说就像是CS里面的第一人...
我要实现的是通过鼠标按住左键拖动可以使摄像机(也就是视角)在原地能够水平方向360度旋转,上下分别可以达到90度,但是竖直方向一定不能倾斜。通俗的说就像是CS里面的第一人称视角,只不过这个人是不能移动的,即不能前后移动,并且我这里的转动是通过按住鼠标左键来实现的,坐等高人。如果想告诉我用系统自带的脚本,请帮忙先试一下,因为我感觉那些我都试过了,没有我想要的。
展开
1个回答
展开全部
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,保证了垂直方向的不倾斜
}
}
}
上面脚本拖拽到相机上即可。
有什么不懂的可以给我发站内消息。~~~
追问
可不可以我把我的图片发给你,你帮我生成下, 网上好多的办法我都试过了,效果就是和别人认为的不一样,会不会是我的环境或者哪里设置的问题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询