Im trying to make algorithm where unit will be forced to rotate with help of AddTorque function. And after a few iterations...Im stuck. So, first of all Im calculating a angel between unit position and target. After this Im memorising half of this angel to start braking after half of the rotate. But, AddTorque works very strange - my unit starts spinning in other direction and rotates not only in one axis. What wrong with this code?? Also I would like to make a small roll when unit is rotating (like a plane) Code (CSharp): if (canRotate) { angle = Vector3.Angle(targetDestination, Vector3.forward); if (rotateBrakeAngel == 0) rotateBrakeAngel = angle/2; if (this.rigidbody.angularVelocity.magnitude < maxRotateVelocity) { Quaternion rotate = Quaternion.LookRotation(targetDestination); this.rigidbody.AddTorque(rotate.eulerAngles.normalized * currentEngineForce * Time.fixedDeltaTime); } else if (angle < rotateBrakeAngel) { Quaternion rotate = Quaternion.LookRotation(targetDestination); this.rigidbody.AddTorque( -rotate.eulerAngles.normalized * currentEngineForce * Time.fixedDeltaTime); } }