Aggiungere un componente
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 32 di 67.
gameObject.AddComponent<T>() aggiunge un nuovo componente di tipo T all’oggetto mentre il gioco è in esecuzione e lo restituisce, così puoi configurarlo nelle righe successive. Appartiene al GameObject, a cui uno script accede tramite gameObject. Quando il gioco inizia, questo falò si illumina di un caldo arancione:
void Start()
{
Light glow = gameObject.AddComponent<Light>();
glow.color = new Color(1f, 0.5f, 0f);
glow.intensity = 2f;
}Un componente aggiunto in questo modo rimane per tutta la durata del gioco. Interrompi la modalità Play e l’oggetto torna allo stato salvato nella scena, senza Light. Anche i tuoi script sono componenti: gameObject.AddComponent<Spinner>() aggiunge uno Spinner che inizia a funzionare come qualsiasi altro script.
La maggior parte dei componenti può essere aggiunta più di una volta, ma alcuni no: un oggetto può contenere al massimo un Rigidbody e, se ne richiedi un secondo, viene visualizzato un errore nella Console. Il codice che potrebbe essere eseguito più di una volta verifica se l’oggetto ha già il componente prima di aggiungerlo.
Sfida
MedioLa noce di cocco è appesa alla palma. Premendo Space, l’albero trema: la noce di cocco riceve un Rigidbody, così la gravità la trascina e cade sulla sabbia.
- Prima di premere Space per la prima volta, la noce di cocco resta appesa dov’è.
- Space aggiunge un Rigidbody solo quando la noce di cocco non ne ha ancora uno, quindi le pressioni successive non fanno nulla.
Premi Play, premi Space, poi Check.
Provalo tu
using UnityEngine;
public class CoconutDrop : MonoBehaviour
{
void Update()
{
// Spazio: aggiungi un Rigidbody, se la noce di cocco non ne ha ancora uno
}
}
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