Referencje w Inspectorze
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 29 z 67.
Pole może przechowywać inny obiekt. Nadaj mu typ taki jak Transform lub GameObject, a Inspector pokaże puste miejsce, które wypełnisz, przeciągając na nie obiekt z Hierarchy. Ten skrypt kamery podąża za obiektem przeciągniętym do pola player, pozostając 3 jednostki nad nim i 6 jednostek za nim:
public Transform player;
void Update()
{
transform.position = player.position + new Vector3(0, 3, -6);
}Puste miejsce wyświetla None, a pierwsza linia, która z niego korzysta, zgłasza wyjątek w każdej klatce: UnassignedReferenceException: The variable player of CameraFollow has not been assigned. Następna linia komunikatu mówi, co zrobić: You probably need to assign the player variable of the CameraFollow script in the inspector. Podaje nazwę pola i skryptu, więc wiesz, które miejsce wypełnić.
Niektóre skrypty powinny działać również wtedy, gdy miejsce jest puste. Unity sprawia, że puste miejsce porównuje się jako null, więc taki skrypt sprawdza to przed użyciem. Jeśli otoczysz tę linię w Update() warunkiem if (player != null), kamera bez gracza pozostanie na swoim miejscu zamiast zgłaszać wyjątek.
Wyzwanie
ŚredniKażdy strażnik idzie do swojego posterunku. W scenie w Inspektorze obiektu Guard1 obiekt Post1 jest przypisany do pola o nazwie post. Posterunek Guard2 nie jest jeszcze utworzony, więc jego pole post jest puste.
- Dodaj do skryptu Guard pole
Transformo nazwiepost. - Strażnik idzie do pozycji swojego posterunku z prędkością
speedjednostek na sekundę i zatrzymuje się na nim, nawet jeśli posterunek zostanie później przesunięty. - Strażnik, którego pole post jest puste, pozostaje na miejscu bez błędu.
Naciśnij Play, wybierz każdego strażnika w panelu Hierarchy, aby zobaczyć jego pole Post, a następnie naciśnij Check.
Spróbuj swoich sił
using UnityEngine;
public class Guard : MonoBehaviour
{
// post: Transform, do którego podchodzi ten strażnik, ustawiany w Inspector
public float speed = 2f;
void Update()
{
// Idź do post z prędkością speed. Strażnik z pustym polem post pozostaje na miejscu.
}
}
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