DocHoff Geschrieben 19. Juni 2018 Melden Share Geschrieben 19. Juni 2018 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 More sharing options...
DocHoff Geschrieben 20. Juni 2018 Autor Melden Share Geschrieben 20. Juni 2018 Hallo, ich lade mal zum besseren Verständnis zwei Screenshots hoch. Grüsse Hoffman Pos1.bmp Pos2.bmp Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 20. Juni 2018 Melden Share Geschrieben 20. Juni 2018 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 More sharing options...
Sascha Geschrieben 20. Juni 2018 Melden Share Geschrieben 20. Juni 2018 @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. Wenn man Objekt A auf der Y-Achse nach oben skaliert, dann erhält man erwartungsgemäß einen vertikal skalierten Würfel. Dreht man diesen Quader B jetzt aber um 45° auf der Z-Achse, dann erhält man keinen gedrehten Quader, sondern das hier: Und zwar, weil es jetzt nicht mehr der anfängliche Würfel B ist, der vertikal skaliert wird, sondern das hier: 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 More sharing options...
malzbie Geschrieben 20. Juni 2018 Melden Share Geschrieben 20. Juni 2018 Ja stimmt. Ich habe das verwechselt. Das Problem, was ich gemeldet hatte, war, dass die Objekte sich nicht wieder zurück skalierten, sobald man sie wieder vom Vater entfernt hatte. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
DocHoff Geschrieben 20. Juni 2018 Autor Melden Share Geschrieben 20. Juni 2018 Hallo, vielen Dank für die Hilfe. Ich benutze Unity noch nicht so lange, die Erklärung leuchtet mir aber ein. Habs nochmal neu umgesetzt und es sieht gut aus. Grüsse Hoffman Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.