Drehe dich jede Sekunde
Teil des Abschnitts Grundlagen des Scripting in Unity der Unity-Journey von Coddy. Lektion 4 von 67.
transform.Rotate(x, y, z) dreht ein GameObject um die angegebene Anzahl von Grad um jede seiner Achsen. Wird die Methode in Update() aufgerufen, dreht sich das Objekt bei jedem Frame ein wenig weiter und hört daher nicht auf, sich zu drehen.
Aber wie viele Frames hat eine Sekunde? Auf einem schnellen Computer vielleicht 120, auf einem Smartphone vielleicht 30. Ein einfaches transform.Rotate(0, 0, 5) würde sich auf dem schnellen Gerät viermal so schnell drehen. Unitys Lösung heißt Time.deltaTime: die Sekunden, die seit dem letzten Frame vergangen sind. Multipliziere eine Geschwindigkeit damit, und sie gilt für jede Sekunde und auf jedem Gerät.
Hier dreht sich ein Rad um seine z-Achse, 45 Grad pro Sekunde:
public float speed = 45f;
void Update()
{
transform.Rotate(0, 0, speed * Time.deltaTime);
}Bei 60 Frames pro Sekunde beträgt Time.deltaTime ungefähr 0.0167, sodass sich das Rad bei jedem Frame um 45 * 0.0167 dreht, also ungefähr 0.75 Grad. 60 solcher Schritte ergeben 45. Bei 30 Frames pro Sekunde dreht es sich bei jedem Frame doppelt so weit, und nach einer Sekunde sind es immer noch 45 Grad.
Aufgabe
EinfachDer Würfel hat ein Spinner-Skript mit einer speed von 90. Lass den Würfel in Update() auf jedem Gerät jede Sekunde um speed Grad um seine y-Achse drehen.
Drücke auf Wiedergabe, um es anzusehen, und dann auf Prüfen.
Probier es selbst
using UnityEngine;
public class Spinner : MonoBehaviour
{
public float speed = 90f;
void Update()
{
// Drehe den Würfel hier um seine y-Achse
}
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen des Scripting in Unity
1Dein erstes Skript
Hallo, UnityPlatziere den WürfelBewege dich in jedem FrameDrehe dich jede SekundeSteuere mit den TastenRückblick: Steuere den Würfel4Vektoren
Vektoren addierenRichtungenLokaler und globaler RaumDiagonale GeschwindigkeitAbstand zwischen ObjektenVector3 ist ein StructRückblick: Drohnenpilot7Projekt: Fang den Stern
Der FängerEin fallender Stern10Der Lebenszyklus eines Skripts
Awake und StartUpdate und LateUpdateOnEnable und OnDisableDie Reihenfolge im LebenszyklusRückblick: Lifecycle Logger5Transformationen und Hierarchie
Eltern und KinderSkalierungDinge ansehenAuf einen Punkt zubewegenRückblick: Umlaufender Mond8Dinge finden
Nach Namen findenTagsNach Typ findenReferenzen schlagen FindUnitys NullRückblick: Nächste Münze11Projekt: Weiche den Blöcken aus
Der LäuferFallende Blöcke6GameObjects und Komponenten
Referenzen im InspectorEine Komponente abrufenFehlende KomponentenEine Komponente hinzufügenRequireComponentEin- und AusblendenRückblick: Lichtschalter