- 最后登录
- 2018-5-18
- 注册时间
- 2013-11-11
- 阅读权限
- 10
- 积分
- 35
- 纳金币
- 7
- 精华
- 0
|
我想实现摄像头原地旋转的动画,就类似人站在一个点观察周围环境的视角,z轴方向应该固定不动,下面的代码可以实现旋转,但是z轴会发生变化,也就是竖直方向会发生倾斜,通俗点说,比如我现在站在一个大厅里观察四面的环境,我要的效果是只转动脖子来观察,而下面的代码包含了歪动(倾斜)脖子的功能,我想把它去掉,但是一直没找到解决办法。该怎么修改,求大神支招。
void Update () {
//鼠标左键按下,旋转摄像头
if(Input.GetMouseButton(0))
{
if (PreMouseLPos.x<=0)
{
PreMouseLPos =new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0.0f);
}
else
{//用Quaternion.Euler(new Vector3(x,y,0))
Vector3 CurMouseLPos=new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0.0f);
Vector3 offset=CurMouseLPos-PreMouseLPos;
Quaternion tt=Quaternion.Euler(offset);
transform.Rotate(new Vector3(tt.y*20.0f,-tt.x*20.0f,0.0f));
//transform.Rotate(tt.y*20.0f,-tt.x*20.0f,0.0f);
// transform.localRotation = Quaternion.Euler((CurMouseLPos.y-PreMouseLPos.y)*20.0f,-(CurMouseLPos.x - PreMouseLPos.x)*20.0f,0.0f);
PreMouseLPos=CurMouseLPos;
}
}
else
{
PreMouseLPos=new Vector3(0.0f,0.0f,0.0f);
}
|
|