Wyszukiwanie po nazwie
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 56 z 85.
GameObject.Find("Player") przeszukuje scenę w poszukiwaniu aktywnego obiektu o dokładnie takiej nazwie i zwraca go albo null, jeśli go nie ma. Pozwala uniknąć przypisywania pola w Inspectorze, ale ma swoją cenę: przeszukuje każdy obiekt na scenie. Dlatego wywołaj tę metodę raz, w Start(), i zachowaj wynik w polu. Ta kamera bezpieczeństwa znajduje obiekt Player przy 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 również nieaktywne (ukryte) obiekty. Nieudane wyszukiwanie po cichu zwraca null, a błąd pojawia się w następnym wierszu, który używa wyniku: tutaj .transform zgłasza wyjątek NullReferenceException. Ścieżka taka jak "Car/Wheel" znajduje obiekt Wheel, który jest elementem podrzędnym obiektu Car.
Wyzwanie
ŚredniŁazik informuje, jak daleko znajduje się jego cel.
- W
Start()ustawgoal = GameObject.Find("Goal").transform;. - W
Update(), po naciśnięciuInput.GetKeyDown(KeyCode.Space), wyświetl w dzienniku"Distance to goal: " + Vector3.Distance(transform.position, goal.position).
Naciśnij „Graj” i naciśnij spację: w konsoli pojawi się Distance to goal: 5. Następnie naciśnij „Sprawdź”.
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: zapisz w logu odległość do celu.
}
}
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