Search Unity

  1. Unity 2019.2 is now released.
    Dismiss Notice

Rotate Rigidbody on Two Separate Axes Independently to a specific angle, using torque?

Discussion in 'Physics' started by Dnileok, Feb 6, 2015.

  1. Dnileok

    Dnileok

    Joined:
    Mar 16, 2014
    Posts:
    6
    Hi everyone. I have run into bit of a problem and I would appreciate any insight. I have a rectangular rigidbody that I am trying to rotate on both its Y and Z axes. I want the Z axis to rotate a full 360 degrees and the Y axis to rotate 180 degrees. Also when one axis is rotating its rotation does not effect the rotation of the other axis.

    I have figured out a solution to rotate a single axis at a time to a certain angle using torque. By monitoring the amount of rotation along an axis each frame.

    Code (CSharp):
    1.     public void CalculateRotation()
    2.     {
    3.         Vector3 currentUpwardDirection = skateBoardRigidBody.transform.up
    4.         // measure the angle rotated since last frame:
    5.         float angle = Vector3.Angle(currentUpwardDirection, previousUpwardDirection);
    6.        
    7.         if (angle > 0.01)// if rotated a significant angle...
    8.         {    
    9.             // accumulate in currentRotationAmount
    10.             currentRotationAmount += angle;
    11.             // and update previousUpwardDirection
    12.             previousUpwardDirection = currentUpwardDirection;
    13.         }  
    14.     }
    However when incorporating both axes I cant seem to come to a solution.

    I wanted both axes to rotate independently of each other so I could reuse the above code to stop the amount of torque once the desired angle was met for certain rotation.

    I tried using the following to see if this would give me a rotation that I am looking for however it does not.It seems to combine the torques.

    Code (CSharp):
    1. skateBoardRigidBody.AddRelativeTorque(0,0,torqueAmount);
    2. skateBoardRigidBody.AddRelativeTorque(0,torqueAmount,0);
    I this at all possible using physics/torque? I should I resort to using Quaternions? I am building a skateboarding game and would like to try to incorporate physics were at all possible however, if i need to fake it then so be it.

    I attached an image so you can get a better idea.

    I appreciate any and all help.
     

    Attached Files: