Time.deltaTime should be used, when you want movement or any other constant variable change, to be the same speed, no matter the framerate.
How does it work?
DeltaTime is the time between the last and current frame. If the game’s running at 10 fps, it’s 0.1 (1 / fps), if the game’s running at 20 fps, it’s 0.05.
How does this help?
Lets take:
transform.position += Vector3.right * 5;
This addition doesn’t have deltaTime in it. This means, if the game’s at 30 fps, it’ll move 150 world units a second, but if the fps is 60, it’ll be 300 world units.
The second example includes deltaTime:
transform.position += Vector3.right * 5 * Time.deltaTime;
In this case, if the game’s fps is 30, it’ll add 5 * 0.033 each frame, resulting in 5 units/second. The second case would be 60 fps, so the code would add 5 * 0.0166 units per frame to the x position, with the same result, 5 units/second.
All this can be turned into a general equation:
When:
x += speed * (1 / fps) = speed / fps
Then, to get the result for one second, we need to multiply the right side by fps, which results in:
x[metres] = speed[m/s] * t~~;~~
–David–