SerializeField
Teil des Abschnitts Unity-Scripting: Grundlagen der Unity-Journey von Coddy. Lektion 15 von 85.
Ein public-Feld erfüllt zwei Aufgaben zugleich: Es wird im Inspector angezeigt, und jedes andere Skript kann es lesen und ändern. Oft möchtest du nur Ersteres. Auf ein private-Feld (in C# die Standardeinstellung) kann nur die eigene Klasse zugreifen. So kann kein anderes Skript es beschädigen, aber Unity zeigt es nicht im Inspector an.
[SerializeField] weist Unity an, ein privates Feld trotzdem zu speichern und anzuzeigen. Die Reichweite dieses Geschützturms wird für jeden Turm im Inspector festgelegt, und kein anderes Skript kann darauf zugreifen:
[SerializeField] private float range = 5f;
void Start()
{
Debug.Log("Range: " + range);
}So verwaltet der Großteil des Unity-Codes seine Einstellungen: privat, mit [SerializeField]. Achte auch auf den umgekehrten Fall: Wenn du ein Feld auf private setzt und das Attribut vergisst, verwirft Unity stillschweigend den in der Szene gespeicherten Wert. Für das Feld gilt dann wieder die Zahl aus dem Code, ohne dass dich ein Fehler darauf hinweist.
Aufgabe
EinfachVerberge die Höhe der Lampe vor anderen Skripten, aber behalte sie im Inspector.
- Ändere das Feld zu
[SerializeField] private float height = 1f;. - Lass
Start()unverändert: Der Inspector setztheightauf 4.
Drücke auf „Spielen“: Die Lampe hängt weiterhin in einer Höhe von 4. Drücke dann auf „Prüfen“.
Probier es selbst
using UnityEngine;
public class LampHeight : MonoBehaviour
{
public float height = 1f;
void Start()
{
transform.position = new Vector3(0, height, 0);
}
}
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