GetComponent<T>() busca un componente del tipo indicado en el mismo GameObject.
Rigidbody rb = GetComponent<Rigidbody>();
Si no existe, devuelve null.
Conviene obtener una referencia una vez y reutilizarla.
private Rigidbody rb;
void Awake()
{
rb = GetComponent<Rigidbody>();
}
Evita hacer búsquedas innecesarias constantemente.
Permite comprobar y obtener un componente al mismo tiempo.
if (TryGetComponent<Rigidbody>(out Rigidbody rb))
{
rb.useGravity = false;
}
Busca también en los hijos.
Renderer render = GetComponentInChildren<Renderer>();
Busca en los padres.