Hi, here is a link to the same problem I'm having with rotations.. I need to rotate my boat in 2 axis (yaw and roll) but also keep the boat IN LEVEL..
If you just want to change the orientation of the object the Quaternion class in Unity controls that but it does not dictate trajectory. Here is an example:
//yaw - current yaw +35 degrees.
transform.rotation = Quaternion.AngleAxis (35.0f, transform.up) * transform.rotation;
//roll - current roll + 35 degrees.
transform.rotation = Quaternion.AngleAxis (35.0f, transform.forward) * transform.rotation;
If you want this transformation to be gradual or want to change each axis at differing rates, you will have to Slerp (or Lerp) it over time. In that case you would not set the result directly on transform.position but would hold the new rotations in temporary variables and Slerp between the current transform.rotation and them.