Perfect Constant Velocity

I’m making a platformer as a starter game…thing is it is supposed to have the same constant speed, so lets say, if I ever need to calculate at what exact x position the character would be 8 minutes from now, it would be possible. Thing is the speed is not, or does not appear to be constant.

rigidbody2D.velocity = new Vector2 (Speed, rigidbody2D.velocity.y); //Speed == 6.5f

I have the above line of code in both the FixedUpdate() and LateUpdate() functions. So according to the code the speed should always be 6.5 right? (unless of course it collided)
. But on my Update() function I have this;

Debug.Log (rigidbody.velocity.x);

and as results I get all sort of answers. 6.3 and 6.5 being the most frequent, but Im aiming for something that is 100% reliable, and would show 6.5 as the speed all of the time, any clues?

I don’t use the physics system myself, but at a glance, I think your first mistake is that you’re setting rigidbody2d.velocity directly in the first place. One shouldn’t - that’s a variable that gets affected and changed by all sorts of things in the physics system, such as drag. See the documentation here:

And notice that it advices against setting the variable. People usually use forces to add movement to a physically controlled animation. If you want something with a totally constant velocity, then set the transform’s position yourself, based on your constant velocity and the rendering time between frames.