Drehe ihn jede Sekunde
Teil des Abschnitts Unity-Scripting: Grundlagen der Unity-Journey von Coddy. Lektion 11 von 85.
transform.Rotate(x, y, z) dreht ein GameObject um so viele Grad um jede seiner Achsen. Wird die Methode in Update() aufgerufen, dreht sich das Objekt bei jedem Frame ein wenig weiter und dreht sich somit ständig.
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 ist Time.deltaTime: die Sekunden, die seit dem letzten Frame vergangen sind. Multiplizierst du eine Geschwindigkeit damit, gilt sie auf jedem Gerät pro Sekunde.
Hier dreht sich ein Rad jede Sekunde um 45 Grad um seine z-Achse:
public float speed = 45f;
void Update()
{
transform.Rotate(0, 0, speed * Time.deltaTime);
}Bei 60 Frames pro Sekunde beträgt Time.deltaTime etwa 0.0167, sodass sich das Rad pro Frame um 45 * 0.0167, also etwa 0.75 Grad, dreht. 60 solcher Schritte ergeben 45 Grad. Bei 30 Frames pro Sekunde dreht es sich pro Frame doppelt so weit, und nach einer Sekunde sind es immer noch insgesamt 45 Grad.
Aufgabe
EinfachLass den Würfel mit einer Geschwindigkeit von speed Grad pro Sekunde um seine y-Achse drehen.
- Rufe in
Update()transform.Rotate(x, y, z)auf. - Setze
speed * Time.deltaTimein die mittlere Zahl für y und0für x und z. Das Rad oben drehte sich um z; dieser Würfel dreht sich um y.
Drücke auf „Spielen“: Der Würfel dreht sich jede Sekunde um eine Vierteldrehung. Drücke 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
}
}
Alle Lektionen in Unity-Scripting: Grundlagen
1C#-Grundlagen in Unity
Hallo, UnityVariablenDezimalzahlen brauchen ein fText in der KonsoleVariablen, die sich etwas merkenIf und ElseZahlen vergleichenRückblick: Münzsammler7Schleifen und Methoden
Wiederholen mit forSchleifen in SchleifenEine Methode schreibenMethoden mit RückgabewertArraysRückblick: Treppe10Dinge finden
Nach Namen suchenTagsNach Typ suchenReferenzen schlagen SuchenUnitys NullRückblick: nächste Münze13Projekt: Weiche den Blöcken aus
Der LäuferBlöcke vom Himmel2Bring es in Bewegung
Platziere den WürfelBewege ihn in jedem FrameDrehe ihn jede SekundeSteuere mit den TastenRückblick: Fahre den Würfel5Vektoren
Vektoren addierenRichtungenLokaler und globaler RaumDiagonale GeschwindigkeitAbstand zwischen ObjektenVector3 ist eine StrukturRückblick: Drohnenpilot8GameObjects und Komponenten
Referenzen im InspectorEine Komponente abrufenFehlende KomponentenEine Komponente hinzufügenRequireComponentEin- und AusblendenRückblick: Lichtschalter11Prefabs und Erzeugen von Instanzen
Prefabs und InstantiateNach Zeitintervall erzeugenIn einem Raster erzeugenListen von ObjektenDas Neueste zurücknehmenZerstörenZufälliges ErzeugenRückblick: Feuerwerk14Abschließende Herausforderungen
MünzmagnetDie Straße überquerenStraßenverkehrTurmbauerLanden oder verfehlen3Der Inspector
Inspector-FelderSerializeFieldFließkommazahlen und MathfInspector-AttributeRückblick: Aufzug6Transformationen und Hierarchie
Eltern und KinderHisse die FlaggeSkalierungDinge anschauenAuf einen Punkt zubewegenRückblick: Mond in Umlaufbahn9Projekt: Fang den Stern
Der FängerEin fallender Stern12Der Lebenszyklus eines Skripts
Awake und StartUpdate und LateUpdateOnEnable und OnDisableDie Reihenfolge im LebenszyklusRückblick: Lifecycle LoggerÜbe selbstständig: Unity-Playground