Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用蒸汽VR控制器驾驶摩托车_C#_Unity3d_Game Engine_Htc Vive - Fatal编程技术网

C# 使用蒸汽VR控制器驾驶摩托车

C# 使用蒸汽VR控制器驾驶摩托车,c#,unity3d,game-engine,htc-vive,C#,Unity3d,Game Engine,Htc Vive,对于一款VR摩托车游戏(由unity制作),我需要一个方向盘,由SteamVR控制器位置控制 我在寻找两种可能性中的一种: 向前移动控制器=向左转向;向后移动控制器=向右转向 或 向右倾斜控制器=向右转向;向左倾斜控制器=向左转向 现在,我有了这个输入脚本:(私有控制器变量和注释的steerinput只是一个尝试。没有这样做) //专用蒸汽控制器。设备控制器; 无效输入() { 速度=刚性速度大小*3.6f; //冻结Z轴旋转。 transform.eulerAngles=新矢量3(tran

对于一款VR摩托车游戏(由unity制作),我需要一个方向盘,由SteamVR控制器位置控制

我在寻找两种可能性中的一种:

  • 向前移动控制器=向左转向;向后移动控制器=向右转向
  • 向右倾斜控制器=向右转向;向左倾斜控制器=向左转向


    现在,我有了这个输入脚本:(私有控制器变量和注释的steerinput只是一个尝试。没有这样做)

    //专用蒸汽控制器。设备控制器;
    无效输入()
    {
    速度=刚性速度大小*3.6f;
    //冻结Z轴旋转。
    transform.eulerAngles=新矢量3(transform.eulerAngles.x,transform.eulerAngles.y,0);
    //如果崩溃了。。。
    如果(!崩溃)
    {
    如果(!变速齿轮)
    motorInput=Input.GetAxis(“垂直”);
    其他的
    motorInput=数学夹具(Input.GetAxis(“垂直”),-1,0);
    steerInput=Input.GetAxis(“水平”);
    //steerInput=controller.transform.rot.x;
    }
    其他的
    {
    电机输入=0;
    输入=0;
    }
    //反向布尔
    if(电机输入<0&&transform.InverseTransformDirection(刚性速度).z<0)
    反向=真;
    其他的
    反向=假;
    }
    
    //private SteamVR_Controller.Device controller;
    void Inputs()
    {
      Speed = rigid.velocity.magnitude * 3.6f;
    
      //Freezing rotation by Z axis.
      transform.eulerAngles = new Vector3(transform.eulerAngles.x, transform.eulerAngles.y, 0);
    
      //If crashed...
      if (!crashed)
      {
          if (!changingGear)
              motorInput = Input.GetAxis("Vertical");
          else
              motorInput = Mathf.Clamp(Input.GetAxis("Vertical"), -1, 0);
          steerInput = Input.GetAxis("Horizontal");
          //steerInput = controller.transform.rot.x;
      }
      else
      {
          motorInput = 0;
          steerInput = 0;
      }
    
      //Reverse bool
      if (motorInput < 0 && transform.InverseTransformDirection(rigid.velocity).z < 0)
          reversing = true;
      else
          reversing = false;
    
    }