Search Unity

Coin spin physics

Discussion in 'Physics' started by roundham, Mar 20, 2017.

  1. roundham

    roundham

    Joined:
    Oct 28, 2014
    Posts:
    46
    I'm trying to simulate a 3d coin spin then fall like in real life. So far, I made a cylinder with a mesh collider and I add a torque to get it to spin. It spins slow no matter what torque I give it. If I angle the coin a bit then it falls sometimes. It is definitely not realistic. Can someone help me make it look somewhat real?
     
  2. Brian-Stone

    Brian-Stone

    Joined:
    Jun 9, 2012
    Posts:
    222
    It's probably spinning slowly because its limited by rigidbody's maximum angular velocity. And you'll almost certainly need to play with the moments of inertia and friction coefficients to get the approximate effect you want.

    For example
    Code (csharp):
    1. GameObject coin = GameObject.Find("Coin");
    2. Rigidbody rb = coin.GetComponent<Rigidbody>();
    3. rb.angularVelocity = new Vector3(0, 30, 0);
    4. rb.maxAngularVelocity = 30;
    5. rb.inertiaTensor = new Vector3(0.2f, 10.0f, 0.2f);
    If you want more precision, it's possible to calculate the exact moments of inertia for the coin using the standard equations.

    https://en.wikipedia.org/wiki/List_of_moments_of_inertia
     
    Last edited: Mar 21, 2017
    MaybeLater_x and roundham like this.
  3. roundham

    roundham

    Joined:
    Oct 28, 2014
    Posts:
    46
    Thank you so much Brian-Stone! I got it working.
     
  4. MaybeLater_x

    MaybeLater_x

    Joined:
    Aug 14, 2014
    Posts:
    25
    Just reiterating how helpful this post was (for a ring, in my case). Only thing I had to change was the intertia dimensions based on my model.