4
\$\begingroup\$

I am trying to make a frisbee golf game, and I am stuck on the physics of the frisbee.

I can get the disc to fly, but I have not been able to add spin or make it act the way a frisbee would in real life.

If you can provide some code that would be great, or at least tell me what properties the disc object would need in order for this to work.

The disc has a rigid body with the following set:

  • Mass = 0.175
  • Drag = 0
  • Angular Drag = 200 (I am sure this needs to be changed, just wanted to prevent forward rolling)
  • User gravity is checked
  • Is kinematic is unchecked, but changed in a script
  • Interpolate = None
  • Collision Detection = Discrete
  • Constraints are all unchecked

Anyway, any guidance would be much appreciated.

\$\endgroup\$
3
  • \$\begingroup\$ An important factor of Frisbee physics which the Unity physics engine doesn't model at all is aerodynamic lift. The Magnus effect might also play a role. This is a topic where I would actually turn to academic literature. Some physics student surely has written a paper about Frisbee aerodynamics. \$\endgroup\$
    – Philipp
    Commented Jan 9, 2017 at 17:35
  • \$\begingroup\$ Thank you. I guess I was hoping Unity would have something "pre-built", but oh well. \$\endgroup\$
    – linuxer
    Commented Jan 9, 2017 at 18:09
  • \$\begingroup\$ I did a bit of research and realized that this is really more something for physics.stackexchange.com. Just don't mention Unity at all and ask for how to calculate the trajectory of a spinning frisbee disc. \$\endgroup\$
    – Philipp
    Commented Jan 9, 2017 at 21:46

1 Answer 1

-1
\$\begingroup\$

For spinning make sure to look into RigidBody.AddTorque (https://docs.unity3d.com/ScriptReference/Rigidbody.AddTorque.html)

If things get wobbly, you might want to play around with adding a GameObject container "around" the frisbee, so the trajectory is applied on the container and the spinning on the actual frisbee object.

\$\endgroup\$
3
  • \$\begingroup\$ I gave that a try: attachedRigidbody.AddTorque(attachedRigidbody.transform.up * 5); The attachedRigidbody is on the disc object. It seems to have no effect \$\endgroup\$
    – linuxer
    Commented Jan 7, 2017 at 21:19
  • 1
    \$\begingroup\$ This can't work, because the physics of a Frisbee in flight is influenced by physical effects like precession, aerodynamic drag, aerodynamic lift and the Magnus effect which Unity doesn't model and which aren't that trivial to simulate. \$\endgroup\$
    – Philipp
    Commented Jan 9, 2017 at 18:25
  • \$\begingroup\$ Any suggestions on where to start doing this in Unity? I have basically no experience with physics in unity. \$\endgroup\$
    – linuxer
    Commented Jan 9, 2017 at 20:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .