Una dependencia es algo que una clase necesita para funcionar.

Ejemplo

public class PlayerAttack : MonoBehaviour
{
    [SerializeField]
    private Weapon weapon;
}

PlayerAttack depende de Weapon.

Inspector

Una forma simple de inyección de dependencias en Unity es usar:

[SerializeField]
private Weapon weapon;

y asignarla desde el Inspector.

Por código

public void Initialize(Weapon weapon)
{
    this.weapon = weapon;
}

Ventaja

Las dependencias quedan más claras que usando búsquedas globales constantes.

Evitar

Abusar de:

FindAnyObjectByType<T>()
GameObject.Find(...)

para resolver todas las dependencias en runtime.

Resumen rápido

dependencia explícita
> búsqueda global escondida