Wyszukiwanie po nazwie
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 42 z 67.
GameObject.Find("Player") przeszukuje scenę w poszukiwaniu aktywnego obiektu o dokładnie takiej nazwie i zwraca go albo null, jeśli takiego obiektu nie ma. Pozwala uniknąć przypisywania pola w Inspectorze, ale ma swoją cenę: przeszukuje każdy obiekt w scenie. Dlatego wywołuj tę metodę raz, w Start(), i przechowuj wynik w polu. Ta kamera bezpieczeństwa znajduje Playera po uruchomieniu gry i śledzi go w każdej klatce:
private Transform player;
void Start()
{
player = GameObject.Find("Player").transform;
}
void Update()
{
transform.LookAt(player);
}Nazwa musi być dokładnie taka sama, łącznie z wielkimi literami i spacjami: "player" lub "Player " niczego nie znajdzie. Find pomija też nieaktywne (ukryte) obiekty. Nieudane wyszukiwanie po cichu zwraca null, a błąd pojawia się w następnym wierszu, który używa wyniku: w tym przypadku .transform powoduje wyjątek NullReferenceException. Ścieżka taka jak "Car/Wheel" znajduje Wheel, który jest obiektem podrzędnym Car.
Wyzwanie
ŚredniŁazik podaje, jak daleko znajduje się jego cel.
- W
Start()znajdź obiekt o nazwieGoali zachowaj jego Transform wgoal. - Za każdym razem, gdy naciśniesz spację, wyświetl w logu odległość od łazika do celu, na przykład
Distance to goal: 5.
Cel może się poruszać, więc zmierz odległość w chwili naciśnięcia spacji.
Naciśnij Play, kliknij grę i naciśnij spację, a następnie Check.
Spróbuj swoich sił
using UnityEngine;
public class Beacon : MonoBehaviour
{
private Transform goal;
void Start()
{
// Znajdź obiekt o nazwie Goal i zapisz jego Transform w goal.
}
void Update()
{
// Space: wypisz w dzienniku odległość do celu.
}
}
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 orbicie8Wyszukiwanie obiektów
Wyszukiwanie po nazwieTagiWyszukiwanie po typieReferencje lepsze niż FindNull w UnityPodsumowanie: najbliższa moneta3Wejś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