Pokazywanie i ukrywanie
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 48 z 85.
SetActive(false) wyłącza cały obiekt GameObject: nie jest rysowany, przestaje uczestniczyć w kolizjach, jego skrypty przestają otrzymywać wywołania Update(), a jego obiekty potomne również zostają wyłączone. SetActive(true) przywraca wszystko, a activeSelf informuje, czy obiekt jest włączony. Ten skrypt umieszczony na przycisku ukrywa drzwi wskazane w polu door po kliknięciu myszy:
public GameObject door;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
door.SetActive(false);
}
}Skrypt, który ukrywa własny obiekt za pomocą gameObject.SetActive(false), nie może go ponownie włączyć, ponieważ jego Update() przestaje działać. Dlatego przełącznik znajduje się na innym obiekcie, który ma referencję do obiektu, który pokazuje i ukrywa.
enabled wyłącza jeden komponent, pozostawiając resztę obiektu bez zmian. GetComponent<Renderer>().enabled = false sprawia, że obiekt staje się niewidoczny, ale jego collider nadal blokuje inne obiekty: to niewidzialna ściana. Skrypt z ustawieniem enabled = false nie otrzymuje już wywołań Update(), ale obiekt pozostaje w scenie, nadal jest rysowany i nadal uczestniczy w kolizjach, a jego pozostałe komponenty wciąż działają.
Wyzwanie
ŚredniSpraw, aby naciśnięcie spacji ukrywało most i przywracało go.
- W
Update(), po naciśnięciuInput.GetKeyDown(KeyCode.Space), wywołajbridge.SetActive(...), aby przełączyć cały most wraz z koliderem. - Przekaż wartość przeciwną do jego stanu:
bridge.SetActive(!bridge.activeSelf);.
Naciśnij „Graj” i naciśnij kilka razy spację: most znika i pojawia się ponownie. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
using UnityEngine;
public class BridgeSwitch : MonoBehaviour
{
public GameObject bridge;
void Update()
{
// Space ukrywa most, a kolejne naciśnięcie pokazuje go ponownie
}
}
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