Menu
CoddyTech

Pobieranie komponentu

Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 30 z 67.

GameObject to kontener komponentów: Transform, MeshRenderer, który go rysuje, collider, twoje skrypty. GetComponent<Renderer>() zwraca komponent tego typu znajdujący się na tym samym obiekcie, a za jego pośrednictwem twój skrypt zmienia działanie tego komponentu. transform to gotowy skrót do Transform; każdy inny komponent pobierasz samodzielnie.

Sześcian zmienia kolor na czerwony po naciśnięciu klawisza Space. 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 jego własną kopię materiału, więc inne obiekty, które współdzieliły ten materiał, zachowują swój kolor. Unity udostępnia nazwy niektórych kolorów, takich jak 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.

challenge icon

Wyzwanie

Średni

Światło sygnalizacyjne zaczyna od koloru czerwonego. Każde kliknięcie zmienia jego kolor na następny w tej kolejności: czerwony, żółty, zielony, potem znów czerwony i tak dalej.

Pobierz Renderer raz, w Start(), i przechowuj go w polu. Użyj Color.red, Color.yellow i Color.green.

Naciśnij Play, kliknij kilka razy w grę, a następnie Check.

Spróbuj swoich sił

using UnityEngine;

public class SignalLight : MonoBehaviour
{

    void Start()
    {
    }

    void Update()
    {
        // Każde kliknięcie: czerwone, potem żółte, potem zielone, a następnie znów czerwone
    }
}
quiz iconSprawdź się

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