zoukankan      html  css  js  c++  java
  • u3d按住鼠标右键才转动摄像机的方法

    unity3d获取鼠标3个键的响应如下:
    鼠标左键GetMouseButton(0)
    鼠标右键GetMouseButton(1)
    鼠标中键GetMouseButton(2)

    知道了鼠标的响应要做到按下右键再转动摄像机就简单了。
    建好一工程UNITY自带的脚本MouseLook.cs中已经把通过鼠标移动旋转摄像机的功能做好了。想要按下右键才再转动摄像机。只要在Update()的相应位置加上Input.GetMouseButton(1)就可以了。
    代码如下:

    void Update ()
     {
      if(Input.GetMouseButton(1))
      {
       if (axes == RotationAxes.MouseXAndY)
       {
        // Read the mouse input axis
        rotationX += Input.GetAxis("Mouse X") * sensitivityX;
        rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
        rotationX = ClampAngle (rotationX, minimumX, maximumX);
        rotationY = ClampAngle (rotationY, minimumY, maximumY);
        
        Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up);
        Quaternion yQuaternion = Quaternion.AngleAxis (rotationY, Vector3.left);
        
        transform.localRotation = originalRotation * xQuaternion * yQuaternion;
       }
       else if (axes == RotationAxes.MouseX)
       {
        rotationX += Input.GetAxis("Mouse X") * sensitivityX;
        rotationX = ClampAngle (rotationX, minimumX, maximumX);
        Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up);
        transform.localRotation = originalRotation * xQuaternion;
       }
       else
       {
        rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
        rotationY = ClampAngle (rotationY, minimumY, maximumY);
        Quaternion yQuaternion = Quaternion.AngleAxis (rotationY, Vector3.left);
        transform.localRotation = originalRotation * yQuaternion;
       }
      }
     }
  • 相关阅读:
    windowsserver2016系统性能和功能对比介绍
    联想x3650m5服务器安装windows2008R2系统
    Linux修改主机名
    Windows Server 2008 R2 忘记密码的处理方法
    Centos7 安装教程(详细版)
    CentOS 6.5的安装详解(图文详解)
    centos 6.5 忘记用户名和密码
    磁盘阵列的区别和特点
    什么是OSI参考模型?
    MTU是什么?
  • 原文地址:https://www.cnblogs.com/fm168/p/3045760.html
Copyright © 2011-2022 走看看