An example of the rotation that I have applied using my timeline is on the 1.5 second mark, a rotation of 22.5 is applied to the z axis, resulting in the following:
If you animate, for example, the Player Ship, the animation will override the Transform of that game object. If you move the ship via code, the animation would override those values, and you would not see the expected movement in the game window.
For this reason, we have two different game object: one for the animation, one for the movement.
The keyframes in the animation must not reference the Player Ship or any of its properties such as, for example, transform.rotation.