Ist es möglich ein Objekt in Unity, unabhängig seiner aktuellen Drehung, zu drehen?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Wenn du dich entsprechend der Mausbewegung drehen möchtest, dann machst du das folgendermaßen:

1.) Du bestimmst den 2D-Bewegungsvektor der Maus (in der Regel aus der Differenz der vorherigen Mausposition und der jezigen Mausposition).
Daraus kannst du einen 3D-Vektor machen, indem du entweder den Z-Part auf 0 setzt oder diesen anders bestimmst, beispielsweise indem du Drehungen der Kamera über bestimmte Maustasten erlaubst.
Den entstehenden Vektor solltest du normalisieren.

2.) Mit diesem Bewegungsvektor kannst du die Drehachse bestimmen. Diese ist:

cross(cam_movement, view_direction);

Wenn du "view_direction" dabei als absolute Viewdirection wählst, dann erhälst du auch die absolute Drehachse.
Ist "view_direction" die relative Viewdirection, dann erhälst du die Drehachse relativ zur aktuellen Orientierung der Kamera.

3.) Du drehst die Kamera um die Achse. Beachte dabei, ob du die relative oder die absolute Drehachse verwendest.