Jump to content
Unity Insider Forum

Probleme mit Rotation


DocHoff

Recommended Posts

Hallo,

habe ein Problem mit dem Rotieren von Objekten.

Folgende Ausgangssituation: Ich habe ein ElternObjekt (Zylinder) und ein KindObjekt (Balken) erstellt.

Jetzt möchte ich den Balken heben und senken,so ähnlich wie ein Kran.

Dazu benutze ich folgendes:

 if (Input.GetKey(KeyCode.UpArrow)) { transform.RotateAround(Vector3.up, Vector3.back, RotPunkt * (Time.deltaTime * 50)); }

Der Balken soll sich im Verhältniss zum Zylinder bewegen welcher sich drehen kann.

Klappt auch ganz gut nur wird der Balken so komisch durchgewalkt(kanns gerade nicht anders beschreiben).

Was mache ich falsch?

 

Grüsse Hoffman

Link zu diesem Kommentar
Auf anderen Seiten teilen

Willkommen DocHoff! :)
BMP als Bildformat zu nutzen ist nicht so gut. Erstens zeigt das Forum die Vorschau nicht an und zweitens sind das ja unkomprimierte Bilder, die recht groß werden können.

Zum Problem: Das ist ein UnityBug! Ich hatte diesen Fehler schon in der Version 5 gemeldet und man versprach mir Besserung in der nächsten Version. Ist scheinbar immer noch da, oder nutzt du die Version 5?
Dieser Fehler passiert nur, wenn du Unity Grundoblekte verschachtelst und die dann manipulieren willst. Wenn du 3D Objekte importierst und die dann nutzt, sollte die Verformung nicht passieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@malzbie Das ist doch kein Unity-Bug...! Wenn man etwas - egal was - einem skalierten Objekt unterordnet, dann wird es mitskaliert. Wenn du das untergeordnete Objekt dann drehst, dann gilt nach wie vor die Skalierung des übergeordneten Objekts. Dadurch entsteht ein Skew-Effekt.

Man nehme also ein Objekt A und diesem ordner man einen Würfel B unter.

caOheds.jpg

Wenn man Objekt A auf der Y-Achse nach oben skaliert, dann erhält man erwartungsgemäß einen vertikal skalierten Würfel.

nyE2wv8.jpg

Dreht man diesen Quader B jetzt aber um 45° auf der Z-Achse, dann erhält man keinen gedrehten Quader, sondern das hier:

5pyr5mP.jpg

Und zwar, weil es jetzt nicht mehr der anfängliche Würfel B ist, der vertikal skaliert wird, sondern das hier:

RGmZoJV.jpg

Wenn man sich den Weg vom letzten zum vorletzten Bild vor Augen führt, ist hoffentlich klar, was passiert und warum.

Die Lösung ist, einfach keine Objekte zu skalieren, die Kindobjekte haben. Das ist in der Regel auch eigentlich nie nötig. Schon gar nicht non-uniform, also nicht als Vielfaches von (x,x,x).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...