Variablen, die sich etwas merken
Teil des Abschnitts Unity-Scripting: Grundlagen der Unity-Journey von Coddy. Lektion 5 von 85.
Unity ruft Update() in jedem Frame auf, und jeder Aufruf beginnt von vorn: Eine Variable, die innerhalb einer Methode erstellt wird, wird verworfen, wenn die Methode endet. Daher kommt dieser Zähler nie über 1 hinaus:
void Update()
{
int frames = 0;
frames++;
}frames++ addiert 1 – die Kurzform für frames += 1. Im nächsten Frame wird jedoch erneut int frames = 0; ausgeführt und der Zähler beginnt von vorn.
Damit ein Wert von einem Frame zum nächsten erhalten bleibt, erstelle die Variable innerhalb der Klasse, aber außerhalb jeder Methode. Eine Variable an dieser Stelle ist ein Feld: Sie bleibt so lange bestehen wie das Objekt, und jede Methode der Klasse kann sie verwenden.
int frames = 0;
void Update()
{
frames++;
}Jetzt zählt frames weiter: 1, 2, 3 und so weiter – in jedem Frame um eins mehr.
Aufgabe
EinfachLass die Pflanze weiterwachsen.
- Schneide die Zeile
int frames = 0;aus dem Inneren vonUpdate()aus. - Füge sie oberhalb von
void Update()innerhalb der Klasse ein, damitframeszu einem Feld wird, das seinen Zählerstand speichert.
Drücke „Spielen“: Die Pflanze wächst mit jedem Frame ein wenig höher. Drücke anschließend „Prüfen“.
Probier es selbst
using UnityEngine;
public class Grower : MonoBehaviour
{
void Update()
{
int frames = 0;
frames++;
transform.localScale = new Vector3(1, 1 + frames * 0.01f, 1);
}
}
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