SerializeField
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 8 z 67.
Pole public pełni jednocześnie dwie funkcje: jest widoczne w Inspectorze, a każdy inny skrypt może je odczytać i zmienić. Często potrzebujesz tylko tej pierwszej. Pole private (domyślne w C#) może zmieniać tylko jego własna klasa, więc żaden inny skrypt nie może go zepsuć, ale Unity nie pokazuje go w Inspectorze.
[SerializeField] prosi Unity, aby mimo to zapisało i pokazało prywatne pole. Zasięg tej wieżyczki ustawia się dla każdej wieżyczki osobno w Inspectorze i żaden inny skrypt nie może go zmienić:
[SerializeField] private float range = 5f;
void Start()
{
Debug.Log("Range: " + range);
}Większość kodu Unity przechowuje ustawienia właśnie w ten sposób: jako prywatne, z użyciem [SerializeField]. Uważaj na odwrotną sytuację: ustaw pole jako prywatne i zapomnij o atrybucie, a Unity po cichu odrzuci wartość zapisaną w scenie. Pole przyjmie wartość liczbową z kodu i nie pojawi się żaden komunikat o błędzie.
Wyzwanie
ŁatwyWysokość lampy jest publiczna, więc każdy skrypt może ją przesunąć. Ustaw height jako prywatną, ale pozostaw ją w Inspectorze, który ustawia ją na 4. Lampa nadal musi wisieć na wysokości ustawionej w Inspectorze.
Naciśnij Play i sprawdź wysokość lampy, a następnie naciśnij Check.
Spróbuj swoich sił
using UnityEngine;
public class LampHeight : MonoBehaviour
{
public float height = 1f;
void Start()
{
transform.position = new Vector3(0, height, 0);
}
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy skryptów w Unity
1Twój pierwszy skrypt
Witaj, UnityUmieść sześcianPoruszaj się w każdej klatceObracaj się co sekundęSteruj za pomocą klawiszyPodsumowanie: Prowadź sześcian2Inspektor
Pola inspektoraSerializeFieldLiczby zmiennoprzecinkowe i MathfAtrybuty inspektoraPodsumowanie: Winda5Transformacje i hierarchia
Rodzice i dzieciSkalaPatrz na obiektyPoruszanie się w kierunku punktuPodsumowanie: Księżyc krążący po orbicie3Wejście
Naciśnięty, przytrzymany, zwolnionyOsiePrzyciski o nazwachPrzyciski myszyPowtórka: naładowany skok6Obiekty gry i komponenty
Referencje w InspectorzePobieranie komponentuBrakujące komponentyDodawanie komponentuRequireComponentPokazywanie i ukrywaniePodsumowanie: włącznik światła