Pobieranie komponentu
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 44 z 85.
GameObject to kontener komponentów: Transform, MeshRenderer, który go rysuje, collider i twoje skrypty. GetComponent<Renderer>() zwraca komponent tego typu z tego samego obiektu, a za jego pośrednictwem skrypt zmienia działanie tego komponentu. transform to gotowy skrót do Transform; każdy inny komponent musisz pobrać samodzielnie.
Ten sześcian zmienia kolor na czerwony po naciśnięciu spacji. Wyszukuje swój Renderer raz, w Start(), i przechowuje go w polu: GetComponent przeszukuje komponenty obiektu przy każdym wywołaniu, a wynik się nie zmienia.
Renderer rend;
void Start()
{
rend = GetComponent<Renderer>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
rend.material.color = Color.red;
}
}rend.material przy pierwszym użyciu tworzy dla tego obiektu własną kopię jego materiału, więc inne obiekty, które korzystały z tego samego materiału, zachowują swój kolor. Unity udostępnia nazwy niektórych kolorów, na przykład Color.red, Color.green, Color.blue, Color.yellow i Color.gray; new Color(r, g, b) tworzy dowolny inny kolor, a każda składowa ma wartość od 0 do 1.
Wyzwanie
ŚredniKażde kliknięcie przełącza sygnalizator: czerwony, żółty, zielony, a potem znowu czerwony.
- Dodaj pole
Renderer rend;i ustaw je wStart()za pomocąGetComponent<Renderer>(). - Po
Input.GetMouseButtonDown(0)zwiększ wartość polaint stepo 1 i ustaw ją z powrotem na 0, gdy osiągnie 3. - Ustaw
rend.material.colornaColor.red,Color.yellowlubColor.greendla kroku 0, 1 lub 2.
Naciśnij „Graj” i kliknij w grę: światło zmieni kolor. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
using UnityEngine;
public class SignalLight : MonoBehaviour
{
void Start()
{
}
void Update()
{
// Każde kliknięcie: czerwony, potem żółty, potem zielony, a następnie znów czerwony
}
}
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