Pretty much exactly what VISE said, you generally don't want to fuck with Quaternions if it can be avoided. If you're still having problems rotating with Euler angles you could also try making your 3d model a child of the actual player gameobject. That way you can just rotate the 3d model to face the proper direction when needed and you don't need to worry about rotating the actual player gameobject. This should save you some headaches if movement code and rotation code are conflicting in someway. Hope this helps. good luck!