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;
       }
      }
     }
  • 相关阅读:
    核心编程(第七章)
    核心编程答案(第六章)
    spring aop配置切点执行了两次的原因
    spring AOP使用 xml配置
    有关于时间戳的pgsql操作
    sql 中 limit 与 limit,offset连用
    学习大数据笔记day1
    Java实现各种排序
    关于java洗牌发牌小程序
    flex.css
  • 原文地址:https://www.cnblogs.com/fm168/p/3045760.html
Copyright © 2011-2022 走看看