RequireComponent
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 47 di 85.
[RequireComponent(typeof(Rigidbody))], scritto sopra la classe di uno script, comunica a Unity che lo script non può funzionare senza un Rigidbody sullo stesso oggetto:
[RequireComponent(typeof(Rigidbody))]
public class Jumper : MonoBehaviour
{
Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
}Unity interviene quando lo script viene aggiunto a un oggetto, nell'Inspector o con AddComponent: se l'oggetto non ha un Rigidbody, Unity ne aggiunge uno. Finché Jumper è sull'oggetto, l'Inspector impedisce di rimuovere quel Rigidbody. Quindi GetComponent qui ne trova sempre uno e Jumper non ha bisogno di alcun controllo.
L'attributo non agisce retroattivamente: gli oggetti che avevano già Jumper prima che la riga fosse scritta non ricevono un Rigidbody finché lo script non viene rimosso e aggiunto di nuovo. Un attributo può indicare fino a tre tipi, come in [RequireComponent(typeof(Rigidbody), typeof(BoxCollider))], e una classe può averne diversi.
Provalo tu
Questa lezione non include una sfida di codice.
Tutte le lezioni di Fondamenti di scripting in Unity
1Nozioni di base di C# in Unity
Ciao, UnityVariabiliI numeri decimali richiedono una fTesto nella ConsoleVariabili che ricordanoIf ed ElseConfrontare i numeriRipasso: il collezionista di monete7Cicli e metodi
Ripeti con forCicli annidatiScrivere un metodoMetodi che restituiscono valoriArrayRiepilogo: scala10Trovare gli oggetti
Trovare per nomeTagTrovare per tipoI riferimenti battono la ricercaIl null di UnityRipasso: la moneta più vicina13Progetto: Schiva i blocchi
Il corridoreBlocchi dal cielo2Fallo muovere
Posiziona il cuboMuovilo a ogni frameRuotalo ogni secondoGuidalo con i tastiRiepilogo: guida il cubo5Vettori
Somma di vettoriDirezioniSpazio locale e spazio mondoVelocità diagonaleDistanza tra gli oggettiVector3 è una structRiepilogo: pilota di droni8GameObject e componenti
Riferimenti nell'InspectorOttenere un componenteComponenti mancantiAggiungere un componenteRequireComponentMostrare e nascondereRiepilogo: interruttore della luce3L’Inspector
Campi dell’InspectorSerializeFieldNumeri decimali e MathfAttributi dell’InspectorRiepilogo: ascensore6Trasformazioni e gerarchia
Genitori e figliIssare la bandieraScalaOsservare gli oggettiMuoversi verso un puntoRiepilogo: Luna in orbita9Progetto: Acchiappa la stella
Il raccoglitoreUna stella cadente12Il ciclo di vita dello script
Awake e StartUpdate e LateUpdateOnEnable e OnDisableL'ordine del ciclo di vitaRiepilogo: Lifecycle LoggerEsercitati da solo: Playground Unity