Pokazywanie i ukrywanie
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 34 z 67.
SetActive(false) wyłącza cały obiekt GameObject: nie jest rysowany, przestaje kolidować, jego skrypty przestają otrzymywać wywołania Update(), a jego elementy podrzędne również są wyłączane. SetActive(true) przywraca wszystko, a activeSelf informuje, czy obiekt jest włączony. Ten skrypt na przycisku ukrywa drzwi wskazane w polu door po kliknięciu myszą:
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 przechowuje 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 enabled = false nie otrzymuje już wywołań Update(), ale obiekt pozostaje w scenie, nadal jest rysowany i nadal koliduje, a pozostałe jego komponenty nadal działają.
Wyzwanie
ŚredniSkrypt dźwigni przechowuje most w polu bridge. Spraw, by klawisz Space sterował mostem: pierwsze naciśnięcie go ukrywa, kolejne przywraca i tak dalej — jedno przełączenie na naciśnięcie.
Ukryj cały most, łącznie z koliderem, żeby nikt nie mógł stać na moście, którego nie ma.
Naciśnij Play, kilka razy naciśnij Space, a następnie Check.
Spróbuj swoich sił
using UnityEngine;
public class BridgeSwitch : MonoBehaviour
{
public GameObject bridge;
void Update()
{
// Spacja ukrywa most, a ponowne naciśnięcie go pokazuje
}
}
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
1Twój pierwszy skrypt
Witaj, UnityUmieść sześcianPoruszaj się w każdej klatceObracaj się co sekundęSteruj za pomocą klawiszyPodsumowanie: Prowadź sześcian2Inspektor
Pola inspektoraSerializeFieldLiczby zmiennoprzecinkowe i MathfAtrybuty inspektoraPodsumowanie: Winda5Transformacje i hierarchia
Rodzice i dzieciSkalaPatrz na obiektyPoruszanie się w kierunku punktuPodsumowanie: Księżyc krążący po orbicie3Wejście
Naciśnięty, przytrzymany, zwolnionyOsiePrzyciski o nazwachPrzyciski myszyPowtórka: naładowany skok6Obiekty gry i komponenty
Referencje w InspectorzePobieranie komponentuBrakujące komponentyDodawanie komponentuRequireComponentPokazywanie i ukrywaniePodsumowanie: włącznik światła