**Original question**

"Does anyone know how to calculate the velocity of an object of a given, constant mass after using AddForce? There is no resistance on the rigidbody, and the use gravity box is unchecked (doesn’t use gravity from the physics engine).

Ive tried looking for actual physics formulas, but they seem to all need acceleration or the length of time that the force is applied. The way I understand it, AddForce is an instant, one-time force, and doesn’t have a length of time associated with it. If AddForce is actually applied over a length of time, that information will be just as helpful as a formula. Thanks"

**My answer with explanation of some common misconceptions…**

Hello,

you have some problems because of some misconceptions about Force, Acceleration and Velocity.

Let’s start with Force. What is a force? It’s a push or pull. Simple as that :). If ONLY one force is applied ONCE (only one time, for a really small moment) to an object with

NO FORCES acting on it, this object gets pushed or pulled. The force, when applied, gives it velocity. Now, it has velocity, and no forces are acting on it - because

we applied ONLY ONE FORCE ONLY ONCE (for a tiny moment). At the moment we applied the force, the object gained some velocity, it had acceleration in that moment - from 0 to v (where “v” is the current velocity).

Now it does not have any acceleration.

When there are no forces acting on an object, there is no acceleration or deacceleration - and the object won’t change it’s velocity.

There is nothing stopping it from moving, and there is nothing accelerating it. It will move with it’s velocity forever.

It will ONLY stop when we apply a counteracting force on it (in the opposite direction of the moving object).

But what will happen if we apply a force continuously to it? Well, it will have acceleration. Why?

OK, we apply force for the first time to the object that is NOT MOVING (doesn’t have velocity) and NO FORCES are acting on it. It is pushed by the force, so it get’s some

velocity. But now we apply the force again (we are applying it continuously). The object has some velocity, and when we apply the same force again, it gets pushed again, so it gains more velocity.

When we continue to apply the same force it gains more and more velocity - it has acceleration.

That’s why the formula is

F = m*a,

where “F” is force, “m” is mass and “a” is acceleration.

The WRONG formula is

F = m*v,

where “v” is velocity, because it can have velocity when no forces are currently applied to it.

If we have NO ACCELERATION, we aren’t applying any force, and it doesn’t matter if it HAS or HAS NOT velocity.

In your case, you want to calculate what force is needed to accelerate a stopped object to a given velocity. So,

F = m*a

a = dv/dt, where “dv” is deltaVelocity.

dv = (v - v0), where “v0” is the velocity in the beginning (in our case v0 = 0, because the object is not moving), “v” is the end velocity (in our case the desired velocity).

So,

a = (v-v0) / dt, where “dt” is the time it took the velocity to change from v0 to v (in fact, dt = t - t0, t = end time, t0 = starting time. For example, if the change

happened in the timeframe between 2 seconds and 3 seconds, dt will be t - t0 = 3 - 2 = 1 second).

In our case, t0 = 0s, because it’s from the start => so our formula now is

a = (v - v0) / (t-t0)

a = (v - 0) / (t - 0)

a = v/t (this is ONLY BECAUSE v0 = 0 and t0 = 0)

F = m*(v/t)

Now, as Brian Stone said,

The AddForce() function assumes that the force is applied over the fixed timestep duration set by the Unity engine.

By default, the fixed timestep is set to 0.02 seconds, but you can change it to almost anything you want in the Time Manager settings

which is accessed in the Edit->Project Settings->Time menu. You can also get or set the fixed timestep in code via Time.fixedDeltaTime.

Well, then “t” from the formula is the fixed timestep duration set by the Unity engine in our case,

t = Time.fixedDeltaTime.

So, finally

F = m * (v/t), where “m” is the mass of the object, “v” is the desired velocity and t = Time.fixedDeltaTime.

I hope this helped you reader, I hope I explained it as simple as it can be.