SerializeField
Teil des Abschnitts Grundlagen des Scripting in Unity der Unity-Journey von Coddy. Lektion 8 von 67.
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. Ein private-Feld (der Standard in C#) kann nur von seiner eigenen Klasse geändert werden, sodass kein anderes Skript es beeinträchtigen kann. Unity zeigt es jedoch 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 Geschützturm 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 privat machst und das Attribut vergisst, verwirft Unity unbemerkt den in der Szene gespeicherten Wert. Für das Feld wird dann wieder die Zahl aus dem Code verwendet, ohne dass dich ein Fehler darauf hinweist.
Aufgabe
EinfachDie height der Lampe ist öffentlich, sodass jedes Skript sie bewegen könnte. Mache height privat, lasse sie aber im Inspector, der sie auf 4 setzt. Die Lampe muss weiterhin auf der im Inspector festgelegten Höhe hängen.
Drücke Play und sieh dir die Höhe der Lampe an, dann Check.
Probier es selbst
using UnityEngine;
public class LampHeight : MonoBehaviour
{
public float height = 1f;
void Start()
{
transform.position = new Vector3(0, height, 0);
}
}
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