Menu
CoddyTech

RequireComponent

Parte da seção Fundamentos de Scripting no Unity do Journey de Unity da Coddy. Lição 47 de 85.

[RequireComponent(typeof(Rigidbody))], escrito acima da classe de um script, informa ao Unity que o script não pode funcionar sem um Rigidbody no mesmo objeto:

[RequireComponent(typeof(Rigidbody))]
public class Jumper : MonoBehaviour
{
    Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }
}

O Unity age quando o script é adicionado a um objeto, pelo Inspector ou com AddComponent: se o objeto não tiver um Rigidbody, o Unity adicionará um. Enquanto Jumper estiver no objeto, o Inspector não permitirá remover esse Rigidbody. Portanto, GetComponent sempre encontra um aqui, e Jumper não precisa de nenhuma verificação.

O atributo não retroage: objetos que já tinham Jumper antes de a linha ser escrita não recebem um Rigidbody até que o script seja removido e adicionado novamente. Um atributo pode especificar até três tipos, como em [RequireComponent(typeof(Rigidbody), typeof(BoxCollider))], e uma classe pode ter vários deles.

Experimente você mesmo

Esta lição não inclui um desafio de código.

Todas as lições de Fundamentos de Scripting no Unity

Pratique por conta própria: Playground de Unity