Drehung eines Würfels in einem 3D-Raum in EinheitC#

Ein Treffpunkt für C#-Programmierer
Guest
 Drehung eines Würfels in einem 3D-Raum in Einheit

Post by Guest »

Ich drehe einen Würfel sowohl auf der vertikalen als auch auf der horizontalen Achse.
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:

Code: Select all

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 jetzt nicht mehr nach links/rechts, sondern um die globale Vector.forward-Achse
Hier ist ein Video zur Veranschaulichung des Problems.
https://drive.google.com/file/d/1PZ4Itb ... sp=sharing
Image

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post