Fazeli24 Geschrieben 19. Juni 2020 Melden Share Geschrieben 19. Juni 2020 Hallo an alle, ich weiß das das für die meisten eine einfache Frage ist, aber ich als totaler Unity Anfänger komm einfach nicht weiter. Und da mein Englisch auch nicht das beste ist versteh ich leider nicht was da auf der Unity Seite steht. Also zu meiner Frage: Ich möchte das wenn ich eine Taste drücke, sich ein Objekt in eine bestimmte Richtung dreht. Danke schon mal im Vorraus Fazeli24 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
chrische5 Geschrieben 19. Juni 2020 Melden Share Geschrieben 19. Juni 2020 Hallo Dann musst die Transform Komponente des Object bearbeiten. In dem Fall Rotation und dann die entsprechende Achse. Also Tastendruck abfangen und dann transform rotation des gewollten go modifizieren. Christoph Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 19. Juni 2020 Melden Share Geschrieben 19. Juni 2020 Meinst du, dass sich das Objekt über einen gewissen Zeitraum hinweg ausrichtet? Oder dass es sich so lange gleichmäßig dreht, wie man die Taste gedrückt hält? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Fazeli24 Geschrieben 19. Juni 2020 Autor Melden Share Geschrieben 19. Juni 2020 Hallo Sascha, Ja genau das meine ich (Also das es sich so lange wie man eine Taste gedrückthält gleichmäßig dreht). Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 19. Juni 2020 Melden Share Geschrieben 19. Juni 2020 Ich fang einfach mal ganz von vorne an, auch auf die Gefahr hin, dass ich Dinge sage, die du schon weißt Transform.Rotate kennst du dann ja sicherlich. Das dreht ein Objekt einmalig in eine bestimmte Richtung. Ist also eher wie ein Teleport als eine Bewegung. Das Objekt ist "so" ausgerichtet, Rotate wird aufgerufen, jetzt ist das Objekt anders ausgerichtet, fertig. Um ein Objekt kontinuierlich zu drehen, musst du diese Methode immer wieder aufrufen lassen, sodass es sich immer wieder ein kleines Stückchen weiter dreht. Das geht z.B. in Update. private void Update() { transform.Rotate(0, 10, 0); } Update wird ja jeden Frame aufgerufen, also bei 60 FPS 60-Mal die Sekunde. Das Objekt dreht sich also 60-Mal 10°, also 600° pro Sekunde. Hätten wir aber nur 30 FPS, dann wären es nur 30 kleine Drehungen und damit hätten wir eine Drehgeschwindigkeit von 300° pro Sekunde. Das ist nicht so gut, daher schmeißen wir Time.deltaTime drauf. private void Update() { transform.Rotate(0, 10 * Time.deltaTime, 0); } Time.deltaTime ist die Zeit seit dem letzten Update in Sekunden. Bei 60 FPS ist das 1/60, bei 30 FPS 1/30. Der Wert ist also doppelt so hoch wenn wir nur halb so viele Frames pro Sekunde haben. Man kann das daher als "pro Sekunde" lesen, sodass "10 * Time.deltaTime" als "10° pro Sekunde" gelesen werden kann. Jetzt müssen wir nur noch machen, dass Rotate nur dann aufgerufen wird, wenn die Taste gedrückt ist. Das machen wir mit einer if-Abfrage: private void Update() { if (Input.GetKey(KeyCode.Space)) { transform.Rotate(0, 10 * Time.deltaTime, 0); } } Zur Erinnerung: Update wird jeden Frame aufgerufen. Das heißt, dass jeden Frame geschaut wird, ob Space gerade gedrückt wird. Wenn ja, bewegen wir uns einen Schritt weiter, was, wenn wir die Taste über mehrere Frames am Stück halten, zu einer Bewegung wird. Wenn nein, passiert gar nichts, was Stillstand bedeutet. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Fazeli24 Geschrieben 19. Juni 2020 Autor Melden Share Geschrieben 19. Juni 2020 Danke Danke und noch mals Danke!!! Hat mir sehr geholfen! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Fazeli24 Geschrieben 19. Juni 2020 Autor Melden Share Geschrieben 19. Juni 2020 Kleine Frage zum Forum: Warum ist dieses Thema mit einem Stern Makiert? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 19. Juni 2020 Melden Share Geschrieben 19. Juni 2020 Weil du darin einen Beitrag geschrieben hast. 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.