- Home /
To Clarify On the Unity's Unit of Force
I've seen a few different answers and I want get a definitive answer and/or someone make sure I'm not stupid. I was doing some research on Unity Answers to figure out what EXACTLY is the unit for Unity's numeric representation of force. Naturally, I assumed it must be Newtons because force in a system generally would be the unit of mass times the unit of distance divided by the square of the unit of time. In Unity, these are Kilogram, meter, and second, respectively. Therefore shouldn't it be Kg*m/s^2 (aka Newtons)? Well it makes sense on paper, but in practice I don't buy it.
Using a rigidbody of mass 1(kg) suspended with a fixed joint, and the breakForce set to 11 (gravity is set to -10 for simplification), the joint does not break.
This makes sense since the force on the joint would be mg or 1 * 10 = 10 which is not above the breakForce.
However, change the breakForce to 9 and run the scene, and you will find the join is not broken yet.
If you keep decreasing the break force you find that it will break when it drops below .2
Now this is just completely WRONG to say this is still Newtons, which I have seen many users smugly proclaim is the unit for force in Unity.
It would appear as though the REAL unit of force is about 50 times that of a Newton.
Does this make sense to you guys? Am I right here or am I completely off base? Also, if anyone knows, why is this the case?
Answer by paulmac · May 10, 2014 at 02:33 PM
I had the same problem so I went back to basics.
applying a force of 10 Newtons to a cube of mass 10 kg = 1 metre/sec
tried this using unity and rigidbody.addforce(vector3.up, force) // force to apply I switched off gravity, created a cube and added the following code.
if (Input.GetButton("Fire1") ) // { rigidbody.AddForce(Vector3.up * 10 ); }
I first thought this would move the cube up by 1 m/sec. However what I found was that it moved it up by .02 metre/sec.
I then realised this was the exact amount that fixedupdate is set to. So in effect I am not applying the 10 newton force over 1 second, I am in fact applying a 10 newton force over .02 secs.
This is why you came to the conclusion that Unitys Newton was 50 times smaller.
It isnt , you must multiply the force by 50 so that time is equal to 1 second .
Agreed.
If you have a 1kg cube and a fixedJoint with break force = 1, then to break it ( disable gravity ):
apply a force of (0,-50,0) (only call once);
apply an impulse of (0,-1,0) (only call once);
Be noted that, if you keep applying force, you could break the joint with a little less power ( 2% or so ), i.e.: <0,-49,0>
Answer by MountDoomTeam · Jan 04, 2013 at 08:34 PM
here is a pretty complete answer to this question- http://answers.unity3d.com/questions/39818/does-unity-3-use-si-units.html
No, just no. $$anonymous$$y question is about FORC$$anonymous$$ What relationship FORCE has to the mass and gravity. I don't even care if its metric, I just want to know ALL the unit values, conversions, and relationships for the units of the Unity Engine(Even if they are arbitrary they still are related in some mathematical way) In order to do calculations beforehand and via scripting then just type them in ins$$anonymous$$d of having to play around with the values and kind of guess. Which would have been easy if they seemed to adhere to a pre-constructed unit system, which it appears they half did.
Answer by einScotchFitch · Jun 11, 2016 at 07:10 PM
In the default Unity scene with gravity = 0, a default Unity cube 1m^3 of 1kg mass requires 50N to be moved 1m over 1 second... Why??? It should be 1N = (1kg x 1m)/1s^2, but it's not.
Where is the x50 being applied?