2017-05-26 17 views
0

私は、ホイールコライダーと私のモデルを設定しているし、それが正常に駆動します。サスペンションをシミュレートするホイールメッシュの位置を含め、すべてがうまくいきます。私の唯一の問題は、私がゲームを走らせると、私の車輪がY軸上で90度回転し、横にそって回転することです。スクリプト内のメッシュを回転させて正しく表示させるにはどうすればよいですか?私は主に位置だけが必要ですが、wheel.getworldposeを使用すると私にQuaternionとVector3を使用させます。クォータニオンを使わずにこれを行うことはできますか?相続人 ホイールメッシュを適切な軸で回転させるにはどうすればよいですか?

画像

...私は最終的にコメントアウトすることでこの問題を解決しまし

// Visual updates 
    void Update() 
    { 
     if (!driveable) 
     { 
      return; 
     } 

     // SETUP WHEEL MESHES 

     // Turn the mesh wheels 
     frontLeftWheelWrapper.localEulerAngles = new Vector3(0, 0, steerAngle); 
     frontRightWheelWrapper.localEulerAngles = new Vector3(0, 0, steerAngle); 

     // Wheel rotation 
     frontLeftWheelMesh.Rotate(0, 0, wheelFL.rpm/60 * 360 * Time.deltaTime); 
     frontRightWheelMesh.Rotate(0, 0, wheelFR.rpm/60 * 360 * Time.deltaTime); 
     rearLeftWheelMesh.Rotate(0, 0, wheelRL.rpm/60 * 360 * Time.deltaTime); 
     rearRightWheelMesh.Rotate(0, 0, wheelRR.rpm/60 * 360 * Time.deltaTime); 

     //Wheel Position 
     foreach (WheelCollider wheel in m_Wheels) 
     { 

      Quaternion q; 
      Vector3 p; 
      wheel.GetWorldPose(out p, out q); 

      // Assume that the only child of the wheelcollider is the wheel shape. 
      Transform shapeTransform = wheel.transform.GetChild(0); 
      shapeTransform.position = p; 
      shapeTransform.rotation = q; 
     } 

答えて

0

And heres the code Im using to update my wheel position an D回転... shapetransform.rotation = Q;

は、それから私は、車輪を回転させるために私のスクリプトでオリジナルの回転を使用して、私は位置を更新するためにwheel.getworldposeを使用しました。

+0

は、他のゲームオブジェクトの車輪の子供を作る示唆し、そのゲームオブジェクトを回転させるつもりだった:P – Lestat

関連する問題