RigidBody.velocity = transform.forward * speed causes player "shake"

Im trying to move my player with this line of code:

RigidBody.velocity = transform.forward * speed

It moves smoothly but when it is rotating at the same time, it start to shake. Any idea? Shouln’t I use transform.forward with velocity because transform.forward changes almost every frame?

For any one who came here to look for answers like me, try changing the interpolate to none in Rigidbody2D. That worked for me but if there is “side effects” to this, do tell.

Do you set the RigidBody.velocity in Update() or FixedUpdate()? Does your camera track the player in some way? If yes, do you do it in Update() or FixedUpdate()?

The issue is most likely related with physics simulation (updated in FixedUpdate()) not being in sync with your game logic and/or camera update (usually done in Update()).

This should be an additional comment above if there was a public solution.
But, when developers find this answer they keep it to themselves.

I not only have shake but collision bounce and rebound from what I believe is gimble lock. This happens to my object in the middle of space. Very frustrating to debug as it happens randomly and quick.

If anybody has an answer it would be greatly appreciated by the community.
I have found that vector3 are for positioning and quaternions are for rotation.

I use asset DebugGraph for editor runs. There is also makes DebugTools for runtime data displays!