Dodawanie komponentu
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 46 z 85.
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 ma dostęp przez gameObject. To ognisko zyskuje ciepłe, pomarańczowe światło 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 pozostaje aktywny podczas działania gry. Zatrzymaj „Graj”, a obiekt wróci do stanu zapisanego w scenie, bez komponentu Light. Twoje własne skrypty też 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 można: obiekt może mieć najwyżej jeden komponent Rigidbody, a próba dodania drugiego powoduje wyświetlenie ostrzeżenia w konsoli zamiast tego: Can't add component 'Rigidbody'. Kod, który może wykonać się więcej niż raz, przed dodaniem komponentu sprawdza, czy obiekt już go ma.
Wyzwanie
ŚredniSpacja potrząsa palmą, a kokos spada.
- W
Update(), po naciśnięciuInput.GetKeyDown(KeyCode.Space), dodaj Rigidbody za pomocągameObject.AddComponent<Rigidbody>(). - Dodaj go tylko wtedy, gdy kokos jeszcze go nie ma:
!TryGetComponent(out Rigidbody rb). Drugie naciśnięcie spacji nie doda drugiego Rigidbody.
Naciśnij „Graj” i naciśnij spację: kokos spadnie na piasek. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
using UnityEngine;
public class CoconutDrop : MonoBehaviour
{
void Update()
{
// Space: dodaj Rigidbody, jeśli kokos jeszcze go nie ma
}
}
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