Physics madness: 270º != 270º - Please help

I’ve been developing a game in Unity for almost 3 years and I’m still trying to understand how to deal with rotations. One very specific situation is breaking my code and I need help on how to fix that. Here’s my case scenario:

I have an object which can be rotated to absolute values (0 - 90 - 180 - 270), and I need to check that initial rotation before applying some other transformations. I do this:

int angleZ = (int) m_spriteTransform.rotation.eulerAngles.z;

if(angleZ == 270)
     Do some stuff;
else if(angleZ > 180 && angleZ < 270)
     Do other stuff;

I need to do that check for reasons that are not important now, but here’s what happens. I’m forcing its rotation to be 270 degrees

int angleX = 0;
int angleY = 0;
int angleZ = 270;

m_spriteTransform.rotation = Quaternion.Euler(angleX, angleY, angleZ);

And there is NOTHING at all changing that object’s rotation. Anything. However, when I do the first check, the code if(angleZ == 270) returns FALSE, and the code else if(angleZ > 180 && angleZ < 270) returns TRUE, which makes no goddam sense.

I’m setting breakpoints and also a Debug.Log info log and, after checking both, angleZ returns 270, so I don’t know what is happenning.

How can I deal with this properly?

The eulerAngles variable is not what you need to modify as it is just a return value.

There are a number of rotation functions you can perform to rotate an object.

I think the one you would benefit from most is:

transform.Rotate((float)angleX , (float)angleY, (float)angleZ);