Mostrare e nascondere
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 34 di 67.
SetActive(false) disattiva un intero GameObject: non viene disegnato, non collide più, gli script su di esso smettono di ricevere Update() e anche i suoi figli vengono disattivati. SetActive(true) riattiva tutto, mentre activeSelf indica se è attivo. Questo script, associato a un pulsante, nasconde la porta nel suo campo door quando si fa clic con il mouse:
public GameObject door;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
door.SetActive(false);
}
}Uno script che nasconde il proprio oggetto con gameObject.SetActive(false) non può riattivarlo, perché il suo Update() non viene più eseguito. Quindi l'interruttore si trova su un altro oggetto, che ha un riferimento a quello che mostra e nasconde.
enabled disattiva un singolo componente e lascia invariato il resto dell'oggetto. GetComponent<Renderer>().enabled = false rende invisibile un oggetto, ma il suo collider continua a bloccare le cose: un muro invisibile. Uno script con enabled = false non riceve più chiamate a Update(), ma l'oggetto resta nella scena, ancora disegnato e ancora in collisione, e gli altri componenti continuano a funzionare.
Sfida
MedioLo script della leva contiene il ponte nel suo campo bridge. Fai in modo che Space controlli il ponte: la prima pressione lo nasconde, la successiva lo fa riapparire, e così via, un cambio a ogni pressione.
Nascondi l’intero ponte, collider compreso, così nessuno può stare su un ponte che non c’è.
Premi Play, premi Space qualche volta, poi Check.
Provalo tu
using UnityEngine;
public class BridgeSwitch : MonoBehaviour
{
public GameObject bridge;
void Update()
{
// Space nasconde il ponte e, alla pressione successiva, lo mostra di nuovo
}
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti di scripting in Unity
1Il tuo primo script
Ciao, UnityPosiziona il cuboMuovi a ogni frameRuota ogni secondoGuida con i tastiRiepilogo: guida il cubo4Vettori
Sommare vettoriDirezioniSpazio locale e spazio globaleVelocità diagonaleDistanza tra gli oggettiVector3 è una structRiepilogo: pilota di droni7Progetto: Acchiappa la stella
L'acchiappatoreUna stella cadente10Il ciclo di vita degli script
Awake e StartUpdate e LateUpdateOnEnable e OnDisableL’ordine del ciclo di vitaRipasso: logger del ciclo di vita2L'Inspector
Campi dell'InspectorSerializeFieldNumeri decimali e MathfAttributi dell'InspectorRiepilogo: Ascensore5Trasformazioni e gerarchia
Genitori e figliScalaGuarda gli oggettiMuoversi verso un puntoRiepilogo: Luna in orbita6Oggetti di gioco e componenti
Riferimenti nell’InspectorOttenere un componenteComponenti mancantiAggiungere un componenteRequireComponentMostrare e nascondereRipasso: interruttore della luce