Closing as won't fix: the same thing happens with keyboard controls. If you hold up and right at the same time, up takes precedence. Since you compare if the axis is greater/less than 0, it is almost impossible to move the stick to the right without registering some vertical movement which overrides the horizontal movement. Change it to comparing if beyond 50 and -50 and it works fine, since it's easy to move the stick to the right that far without registering that much vertical movement.