I'm still not understanding how gimbal lock is a problem when everything is digital (and you have a baseline frame of reference in the origin's 0,0,0 rotation), why any axis needs to move to lose any degree of freedom, and they can't just all move together as a whole as they appear to (like if you rotate an apple around with lines drawn on it), but it's beyond me and I'll just accept "it is how it is". However, that's not what keeps causing me headaches. This is: There are at least 3-4 ways of representing angles in Unity. Quaternion Vector3 #1 (Unit vector / difference between two points) Vector3 #2 #1 (Euler angles) Vector3 #2 #2 (Euler angles, but where -5 is greater than 5 and it's not shown in the inspector) You have to print out transform.eulerAngles.x somewhere (when you would think that's what the inspector is showing already) to see that when it says -5, the actual value you're working with in code is 355. That's how a negative number can be greater than a positive. That's how you can take code that would be otherwise be working and make it do strange things. Realizing that even though they're both vector3, two rotations can actually be different types, and understanding the difference between unit vectors and Euler angles and when a method is asking for or returning one or another takes a lot of focus to keep track of, but has helped me immensely. It wasn't enough though, because then I had to stumble on the fact that there's (at least?) two ways of giving Euler angles, and I have no idea how many more ways to represent a rotation there are left to discover. Nothing else in Unity has given me so much trouble. I really despise angle and rotation math at this point. Surely there has to be a better way? This is so frustrating.