Referencje w Inspectorze
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 43 z 85.
Pole może przechowywać inny obiekt. Nadaj mu typ, taki jak Transform lub GameObject, a Inspektor wyświetli puste miejsce, które wypełnisz, przeciągając na nie obiekt z Hierarchii. Ten skrypt kamery podąża za obiektem przeciągniętym do 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 przy 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. Wskazuje pole i skrypt, więc wiesz, które miejsce wypełnić.
Niektóre skrypty powinny działać także wtedy, gdy miejsce jest puste. Unity sprawia, że puste miejsce porównuje się jako równe null, więc taki skrypt sprawdza to przed użyciem. Gdy otoczysz linię w Update() warunkiem if (player != null), kamera bez gracza pozostanie na swoim miejscu zamiast zgłaszać wyjątek.
Wyzwanie
ŚredniWyślij każdego strażnika na posterunek wskazany przez Inspector.
- Dodaj pole
public Transform post;. Pole Guard1 zawiera Post1; pole Guard2 jest puste. - W
Update(), gdypost == null, wykonajreturn;, aby strażnik bez posterunku pozostał na miejscu. - Następnie przesuń go za pomocą
Vector3.MoveTowards(transform.position, post.position, speed * Time.deltaTime).
Naciśnij „Graj”: Guard1 idzie na swój posterunek, a Guard2 czeka. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
using UnityEngine;
public class Guard : MonoBehaviour
{
// post: Transform, do którego zmierza 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.
}
}
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łaPoćwicz samodzielnie: Edytor online Unity