SerializeField
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 15 z 85.
Pole public spełnia jednocześnie dwie funkcje: jest widoczne w Inspectorze i każdy inny skrypt może je odczytywać oraz zmieniać. 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] każe Unity mimo to zapisywać i wyświetlać prywatne pole. Zasięg tej wieżyczki jest ustawiany osobno dla każdej wieżyczki w Inspectorze, a ż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 atrybutem [SerializeField]. Uważaj na odwrotną sytuację: zmień pole na prywatne i zapomnij o atrybucie — Unity po cichu odrzuci wartość zapisaną w scenie. Pole przyjmie wartość liczbową z kodu i nie pojawi się żaden błąd, który by cię o tym poinformował.
Wyzwanie
ŁatwyUkryj wysokość lampy przed innymi skryptami, ale pozostaw ją widoczną w Inspectorze.
- Zmień pole na
[SerializeField] private float height = 1f;. - Pozostaw
Start()bez zmian: Inspector ustawiaheightna 4.
Naciśnij „Graj”: lampa nadal wisi na wysokości 4. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
using UnityEngine;
public class LampHeight : MonoBehaviour
{
public float height = 1f;
void Start()
{
transform.position = new Vector3(0, height, 0);
}
}
Wszystkie lekcje w sekcji Podstawy skryptów w Unity
1Podstawy C# w Unity
Witaj, UnityZmienneLiczby dziesiętne wymagają fTekst w konsoliZmienne, które pamiętająIf i elsePorównywanie liczbPowtórka: Zbieracz monet4Wejście
Naciśnięty, przytrzymany, zwolnionyOsiePrzyciski z nazwamiPrzyciski myszyPowtórka: naładowany skok7Pętle i metody
Powtarzaj za pomocą forPętle wewnątrz pętliNapisz metodęMetody, które zwracają wynikTablicePowtórka: schody10Wyszukiwanie obiektów
Wyszukiwanie po nazwieTagiWyszukiwanie po typieReferencje lepsze niż wyszukiwanieNull w UnityPowtórka: najbliższa moneta13Projekt: Unikaj bloków
BiegaczBloki z nieba2Wpraw to w ruch
Umieść sześcianPoruszaj w każdej klatceObracaj co sekundęSteruj za pomocą klawiszyPodsumowanie: Prowadź sześcian5Wektory
Dodawanie wektorówKierunkiPrzestrzeń lokalna i globalnaPrędkość po przekątnejOdległość między obiektamiVector3 to strukturaPodsumowanie: pilot drona8Obiekty gry i komponenty
Referencje w InspectorzePobieranie komponentuBrakujące komponentyDodawanie komponentuRequireComponentPokazywanie i ukrywaniePowtórka: włącznik światła3Inspektor
Pola inspektoraSerializeFieldLiczby zmiennoprzecinkowe i MathfAtrybuty inspektoraPowtórka: winda6Przekształcenia i hierarchia
Rodzice i dzieciWciągnij flagęSkalowaniePatrz na obiektyPorusz się w kierunku punktuPodsumowanie: Księżyc na orbiciePoćwicz samodzielnie: Edytor online Unity