Menu
CoddyTech

RequireComponent

Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 33 di 67.

[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.

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