Quaternion довольно сложен и работает иначе, чем вы пытаетесь его использовать. В особенности
transform.eulerAngles.x
- это не то же самое, что
transform.rotation.x
, вы не можете просто смешивать значения пространства Эйлера и кватерниона!
Для своего вращения лучше использовать, например,
transform.rotation * Quaternion.Euler(90, 0, 0)
, который поворачивает текущее вращение на 90 ° по оси X (см. Оператор кватерниона *
)
Никогда не трогайте значения Quaternion вручную, если вы этого не сделаете точно знать, что вы делаете