Ottenere un componente
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 30 di 67.
Un GameObject è un contenitore di componenti: un Transform, un MeshRenderer che lo disegna, un collider, i tuoi script. GetComponent<Renderer>() restituisce il componente di quel tipo presente sullo stesso oggetto e, tramite esso, il tuo script modifica ciò che fa quel componente. transform è una scorciatoia già pronta per il Transform; tutti gli altri componenti li recuperi tu.
Questo cubo diventa rosso quando premi Space. Cerca il suo Renderer una sola volta, in Start(), e lo conserva in un campo: GetComponent cerca tra i componenti dell'oggetto ogni volta che viene chiamato, e il risultato non cambia.
Renderer rend;
void Start()
{
rend = GetComponent<Renderer>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
rend.material.color = Color.red;
}
}rend.material fornisce a questo oggetto una copia personale del suo materiale al primo utilizzo, così gli altri oggetti che condividevano il materiale mantengono il loro colore. Unity ti mette a disposizione alcuni colori con un nome, come Color.red, Color.green, Color.blue, Color.yellow e Color.gray; new Color(r, g, b) crea qualsiasi altro colore, con ogni componente compresa tra 0 e 1.
Sfida
MedioLa luce del segnale inizia rossa. Ogni clic la sposta al colore successivo, in questo ordine: rosso, giallo, verde, poi di nuovo rosso, e così via.
Ottieni il Renderer una sola volta, in Start(), e conservalo in un campo. Usa Color.red, Color.yellow e Color.green.
Premi Play, fai clic sul gioco alcune volte, poi Check.
Provalo tu
using UnityEngine;
public class SignalLight : MonoBehaviour
{
void Start()
{
}
void Update()
{
// Ogni clic: rosso, poi giallo, poi verde, poi di nuovo rosso
}
}
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