Menu
CoddyTech

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.

challenge icon

Sfida

Medio

La 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
    }
}
quiz iconMettiti alla prova

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