Reggie() Geschrieben 22. Juni 2018 Melden Share Geschrieben 22. Juni 2018 Hallo. Ich möchte, dass ein Objekt sich um genau 90 Grad dreht. In der Update() dreht es sich pausenlos. ist bei Tansform.Rotate(new Vector3(90,0,0) * Time.deltaTime); die 90 nicht der Ziel-Wert? ich habe versucht das mit einer Bedingung auf Transform.rotation.x abzufangen und zu beenden. ohne Erfolg. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mr 3d Geschrieben 23. Juni 2018 Melden Share Geschrieben 23. Juni 2018 Nein, wenn du 'Rotate()' in die Update Methode schreibst, wird das Object jeden Frame um die '90 * Time.deltaTime' um die x-Achse gedreht. Also dreht sich dein Objekt dauerhaft mit 90° pro Sekunde. Wenn man nach 'rotate 90 degree smooth' sucht, findet z.B. das hier: https://answers.unity.com/questions/1202034/smooth-90-degree-rotation-on-keypress.html Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Reggie() Geschrieben 23. Juni 2018 Autor Melden Share Geschrieben 23. Juni 2018 ich dachte eine einfache Drehung müsste ohne Coroutine gehen. egal, da ich eh später mehrere Dinge "gleichzeitig" drehen will, hätte ich eh Coroutines nutzen müssen. Danke erstmal Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Reggie() Geschrieben 23. Juni 2018 Autor Melden Share Geschrieben 23. Juni 2018 Habe nun folgenden Code using System.Collections; using System.Collections.Generic; using UnityEngine; public class Rotator : MonoBehaviour { public GameObject topSide; public float speed; IEnumerator RotateMe(Vector3 byAngles, float inTime) { var fromAngle = topSide.transform.rotation; var toAngle = Quaternion.Euler(topSide.transform.eulerAngles + byAngles); for(var t = 0f; t < 1; t += Time.deltaTime/inTime) { transform.rotation = Quaternion.Slerp(fromAngle, toAngle, t); yield return null; } } void Start () { StartCoroutine(RotateMe(Vector3.left * 90, 0.8f)); } } da rührt sich garnix Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mr 3d Geschrieben 23. Juni 2018 Melden Share Geschrieben 23. Juni 2018 Klar geht das auch ohne Coroutine^ Quaternion targetRotation; float rotSpeed; void Awake(){ setTargetRotationEuler(new Vector3(90, 0, 0)); } void Update(){ transform.rotation = Quaternion.RotateTowards(transform.rotation, targetRotation, rotSpeed * Time.deltaTime); } void setTargetRotationEuler(Vector3 rot){ targetRot = Quaternion.Euler(rot); } Mir würden auch noch drei andere Wege einfallen, wie man das umsetzen könnte.. Welcher Weg der beste ist kommst stark auf deinen Zusammenhang an.. Edit: Möchtest du 'transform' drehen, oder das GameObject 'topSide' ? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Reggie() Geschrieben 23. Juni 2018 Autor Melden Share Geschrieben 23. Juni 2018 ich möchte mehrere GameObjects drehen, "topSide" ist nur eines davon. Ich denke ich komme über eine Coroutine pro Objekt nicht herum, wenn ich alle gleichzeitig drehen will, oder? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 23. Juni 2018 Melden Share Geschrieben 23. Juni 2018 Du packst bitte auf jedes deiner sich drehenden Projekte einmal die gleiche Komponente. Auf keinen Fall eine Komponente schreiben, die mehrere Objekte auf exakt gleiche Art dreht. Und wie @Mr 3d schon gezeigt hat, geht das auch gut ohne Coroutine. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Reggie() Geschrieben 23. Juni 2018 Autor Melden Share Geschrieben 23. Juni 2018 also, ich will einen sich öffnenden Würfel machen. Auf Youtube habe ich nix dazu gefunden. Ich habe es fast geschafft. alle Seiten und der Deckel klappen auseinander. Aber der Decker sollte an eine der Seiten "hängen" und wenn sich die Seite dreht, sollte der Deckel sich mitdrehen (kompliziert zu erklären..) Kann ich meine szene irgendwo hochladen, damit ihr euch die angucken könnt? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mr 3d Geschrieben 23. Juni 2018 Melden Share Geschrieben 23. Juni 2018 Sowas? Da würde ich einfach eine Animation machen.. oder muss es dynamisch sein? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Reggie() Geschrieben 23. Juni 2018 Autor Melden Share Geschrieben 23. Juni 2018 EXAKT DAS Animation weiss ich auch nicht wie das geht, daher wollte ich es als 3D-Modell machen und dabei noch was lernen (Unity ist mir immernoch in vielen Dingen ein Rätsel) ps: woher hast du das? Ist das in 3D? ich würde gern in meinem Spiel loot in so einem Würfel aufdecken Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 23. Juni 2018 Melden Share Geschrieben 23. Juni 2018 Dafür musst du die lokale Rotation des Objekts verändern, und die Seiten, die an einer anderen Seite hängen, dieser unterordnen. Also... Blau ist Gold untergeordnet, Gold ist Lila untergeordnet, usw. 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.