A force is applied to a stationary rigid body. Velocity before and after application of force is printed but both values are shown as zero. Why?

public class example : MonoBehaviour {
Rigidbody rb;
Vector3 force;
void Start () {
force = new Vector3(5f, 0, 0);
rb = GetComponent();
print(“(Start) Velocity before force applied " + rb.velocity);//this gives value (0,0,0)
rb.AddForce(force, ForceMode.Force);
print(”(Start) Velocity after force applied " + rb.velocity);//this gives value (0,0,0)
}
void Update () {
print("(Update) Velocity after force applied " + rb.velocity);//this gives value (0.1,0,0)

    }
}

I’m pretty sure thats because void Start () is only executing the code on one frame and AddForce() doesn’t set the velocity instantly, it accelerates the rigidbody over multiple frames. By for example setting the velocity directly to your force variable, you can see that the second print gives a value of (5.0, 0.0, 0.0).