Maybe it has something to do with the usage of euler angles, as described here : https://docs.unity3d.com/ScriptReference/Transform-eulerAngles.html The rotations are stored as Quaternions You are affecting the whole rotation of the object, but if you just wanna rotate around the x and/or the y axis, juste call the Rotate() method, and then specify the axis and value, as manipulating quaternions can be tricky.