I'm using this simple code to move the object using its rigidbody thisRb.velocity = transform.forward * speed; when the object rotation is set to 0 everything works as intended, but when I rotate the object 180 degree the rigidbody.velociy.z component turns negative, this is in turn affecting some other calculations in other parts of the code. for example i was setting a bool flag to see if the object is moving by checking if the velocity.z is greater than 0, when the velocity.z becomes negative this flag changes to false(i do have a work around for this problem) I want to understand more on why this happens and how I can deal with this in future. Also How can i keep the rigidbody velocity always positive regardless of the object orientation. any help is appreciated. Thanks in advance.