Menu
CoddyTech

Dodawanie komponentu

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

gameObject.AddComponent<T>() dodaje do obiektu nowy komponent typu T podczas działania gry i zwraca go, aby można było skonfigurować go w kolejnych wierszach. Należy on do obiektu GameObject, do którego skrypt uzyskuje dostęp za pośrednictwem gameObject. To ognisko rozświetla się ciepłym, pomarańczowym światłem po uruchomieniu gry:

void Start()
{
    Light glow = gameObject.AddComponent<Light>();
    glow.color = new Color(1f, 0.5f, 0f);
    glow.intensity = 2f;
}

Komponent dodany w ten sposób istnieje, dopóki gra działa. Zatrzymaj tryb Play, a obiekt wróci do stanu zapisanego w scenie — bez komponentu Light. Twoje własne skrypty również są komponentami: gameObject.AddComponent<Spinner>() dodaje komponent Spinner, który zaczyna działać jak każdy inny skrypt.

Większość komponentów można dodać więcej niż raz, ale niektórych nie: obiekt może mieć najwyżej jeden komponent Rigidbody, a próba dodania drugiego powoduje wyświetlenie błędu w konsoli. Kod, który może wykonać się więcej niż raz, przed dodaniem komponentu sprawdza, czy obiekt już go ma.

challenge icon

Wyzwanie

Średni

Kokos wisi na palmie. Naciśnięcie klawisza Space potrząsa drzewem: kokos otrzymuje komponent Rigidbody, więc grawitacja zaczyna na niego działać i spada na piasek.

  • Przed pierwszym naciśnięciem klawisza Space kokos wisi na swoim miejscu.
  • Klawisz Space dodaje komponent Rigidbody tylko wtedy, gdy kokos jeszcze go nie ma, więc kolejne naciśnięcia niczego nie dodają.

Naciśnij Play, naciśnij klawisz Space, a następnie Check.

Spróbuj swoich sił

using UnityEngine;

public class CoconutDrop : MonoBehaviour
{
    void Update()
    {
        // Space: dodaj Rigidbody, jeśli kokos jeszcze go nie ma
    }
}
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