Dafür habe ich 4 Eingaben. Nach links/rechts und oben/unten drehen. Der Eingabebereich reicht von -180 bis 180 Grad auf jeder Achse.
Ich habe das bisher versucht:
Vector3 targetEulerAngles = new Vector3(y, 0, 0); // Target rotation in Euler angles
m_transForYaw.eulerAngles = (targetEulerAngles);
targetEulerAngles = new Vector3(0, 0, -x);
m_tranfForPitch.eulerAngles= (targetEulerAngles);
m_transRotateAround.rotation = m_transForYaw.rotation * m_tranfForPitch.rotation;
Meine Frage/mein Problem ist: Wenn die x-Rotation mehr als 90 beträgt, dreht sich m_transForYaw nicht zur Seite, sondern um den Vorwärtsvektor.
Ich habe auch „Umdrehen“ ausprobiert.
Wissen Sie, wie man das Problem löst, dass es sich unabhängig von vorherigen Drehungen nur nach links/rechts dreht?
Aus meiner Sicht besteht das Problem darin, dass ich den Würfel zuvor gedreht habe und das ist das Problem. Z.B.
- Ich habe auf Vector.right gedreht -> normales Verhalten -> der Würfel dreht sich vorwärts/rückwärts
- Jetzt habe ich auf Vector.up drehen. -> der Würfel dreht sich nun nicht mehr nach links/rechts, sondern um die globale Vector.forward-Achse
