Before you roll your eyes, let me explain the question in a bit more detail. I’ve been working on this for a week and have worked with every single variation of rotate, rotation and quaternion functions. It seems like it can’t be done, but it can because Harvester did it.
Consider that if you use the function transform.rotate with Space.World, an object will rotate around the fixed global axes. For example, consider the navball. Suppose you rotate the navball 45 degrees left on the global y axis. (45 degrees left yaw). Now, if you rotate the ball on the global x axis, it will pitch along a circle directly in line with the global x axis. That is, it’s pitch rotation is always around the global x axis is you use Space.World.
Using any variety of rotations or quaternions to explicitly set the rotation, however, ALWAYS results in a rotation on the local axis. Consider the same example above. Yaw the ball 45 degrees left. Now, when you apply pitch, it will pitch around its local x axis, which has itself rotated 45 degrees due to the yaw rotation.
I want to be able to apply a rotation or define a quaternion explicitly such that the three elements of the rotation are truly around the global axes. transform.rotate with Space.World works great, but is not a good solution for a navball. Is there anything resembling what you might expect from something like “transform.rotation = Quaternion.eulerAngles(x,y,z,Space.World)”? (And, no, this function does not exist.)
Is there any new functionality in 5.0 that might solve my problem?