Una dependencia es algo que una clase necesita para funcionar.
public class PlayerAttack : MonoBehaviour
{
[SerializeField]
private Weapon weapon;
}
PlayerAttack depende de Weapon.
Una forma simple de inyección de dependencias en Unity es usar:
[SerializeField]
private Weapon weapon;
y asignarla desde el Inspector.
public void Initialize(Weapon weapon)
{
this.weapon = weapon;
}
Las dependencias quedan más claras que usando búsquedas globales constantes.
Abusar de:
FindAnyObjectByType<T>()
GameObject.Find(...)
para resolver todas las dependencias en runtime.
dependencia explícita
> búsqueda global escondida