12 第1页 | 共2 页下一页
返回列表 发新帖
查看: 3858|回复: 10
打印 上一主题 下一主题

[提问] 摄像头如何固定Z轴

[复制链接]

1

主题

1

听众

35

积分

设计初学者

Rank: 1

纳金币
7
精华
0

活跃会员 灌水之王

跳转到指定楼层
楼主
发表于 2013-11-11 16:48:24 |只看该作者 |倒序浏览
我想实现摄像头原地旋转的动画,就类似人站在一个点观察周围环境的视角,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);
        }  

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

1

主题

1

听众

35

积分

设计初学者

Rank: 1

纳金币
7
精华
0

活跃会员 灌水之王

沙发
发表于 2013-11-11 17:33:31 |只看该作者
求大神啊!!能不能下班靠你们了
回复

使用道具 举报

2317

主题

54

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
20645
精华
62

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2013-11-11 19:59:09 |只看该作者
你这个语法上就有问题了啊,你用Mouse Look的脚本来改不是快些?
回复

使用道具 举报

ZackD    

715

主题

22

听众

4万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
26224
精华
17

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2013-11-11 20:42:04 |只看该作者
王者再临 发表于 2013-11-11 19:59
你这个语法上就有问题了啊,你用Mouse Look的脚本来改不是快些?

安装Character Controller调用里面的Mouse Look试试
回复

使用道具 举报

1

主题

1

听众

35

积分

设计初学者

Rank: 1

纳金币
7
精华
0

活跃会员 灌水之王

5#
发表于 2013-11-11 22:54:28 |只看该作者
语法没有问题啊,编译可以通过的。mouselook那个我试过了,只能水平方向变动,变动的很不规律,感觉是跳着变的。改的话,应该是。加个X方向的旋转吧。但是旋转很不规律这个问题怎么破?万分感谢,跪舔大神
if (axes == RotationAxes.MouseXAndY)
                {
                        float rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX;
                       
                        rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
                        rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
                       
                        transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);
                }
                else if (axes == RotationAxes.MouseX)
                {
                        transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityX, 0);
                }
                else
                {
                        rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
                        rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
                       
                        transform.localEulerAngles = new Vector3(-rotationY, transform.localEulerAngles.y, 0);
                }
回复

使用道具 举报

1

主题

1

听众

35

积分

设计初学者

Rank: 1

纳金币
7
精华
0

活跃会员 灌水之王

6#
发表于 2013-11-11 22:58:34 |只看该作者
ZackD 发表于 2013-11-11 20:42
安装Character Controller调用里面的Mouse Look试试

试过了啊。这个问题困扰我好多天了,改来改去就是不行,网上也找了好久的解决办法,未果啊。这个实现在unity3d里是不是算简单的?无奈啊,新手刚接触。
回复

使用道具 举报

7#
无效楼层,该帖已经被删除

1

主题

1

听众

35

积分

设计初学者

Rank: 1

纳金币
7
精华
0

活跃会员 灌水之王

8#
发表于 2013-11-12 09:59:12 |只看该作者
huhumark 发表于 2013-11-12 09:41
希望楼主已经解决问题

还木有,你有没有什么办法
回复

使用道具 举报

2317

主题

54

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
20645
精华
62

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

9#
发表于 2013-11-12 11:00:38 |只看该作者
Mouse Look不就是只有XY的作用吗?你直接套看看就知道了,也可以去掉Y
回复

使用道具 举报

1

主题

1

听众

35

积分

设计初学者

Rank: 1

纳金币
7
精华
0

活跃会员 灌水之王

10#
发表于 2013-11-12 17:20:46 |只看该作者
ZackD 发表于 2013-11-11 20:42
安装Character Controller调用里面的Mouse Look试试

不可以啊,不能上下旋转,水平方向的旋转也是跳跃性的,称不上是旋转。就没有别的办法了吗?困扰了我三天了
回复

使用道具 举报

12 第1页 | 共2 页下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-15 04:35 , Processed in 0.227732 second(s), 33 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部