rigidbody2D.AddTorque() works differently on iOS, in editor and in web player

Hi All,

I’m still facing very odd things in Unity’s 2D physics. Today I discovered that rigidbody2D.AddTorque() adds much more torque in web player than in the unity editor or on iOS devices. Steps to reproduce:

  1. Create blank project
  2. Create gameobject with cube mesh and box collider 2D. Scale it up horizontally to make a kind of floor.
  3. Create another cube with box collider 2D and Rigidbody 2D.
  4. Create sphere with circle collider 2D and RigidBody 2D.
  5. Attach a new script to sphere gameobject.
  6. In that script put rigidbody2D.AddTorque(200f); in the Start() function.
  7. See how different is the behaviour of the sphere in unity editor and in web player.

Here’s the video from the editor:
http://madfatcat.com/00/editorAndIOS.mov

Here’s the video of the same project in the web player:
http://madfatcat.com/00/webPlayer.mov

Can someone advice me how to fix this weird bug? I have Unity Basic 4.5.1f3 for Mac. I’ll appreciate if someone will let me know if he can reproduce this on another mac/pc.

Are you using the keyboard on the desktop and a virtual joystick on the mobile device?

I think it’s just because the keyboard is binary while the joystick/accelerometer is not.
So it’s always giving full force when pressed, while the joystick can give less.
You can try putting a speed variable and hand-tweak it depending on the platform with an if statement,
but the first thing you should try is to simply normalize the inputs to -1/1.