Una interface define qué operaciones debe ofrecer una clase sin indicar cómo las implementa.
public interface IDamageable
{
void RecibirDaño(int cantidad);
}
public class Enemy :
MonoBehaviour,
IDamageable
{
public void RecibirDaño(int cantidad)
{
Debug.Log("Daño recibido");
}
}
if (hit.collider.TryGetComponent<IDamageable>(
out IDamageable objetivo))
{
objetivo.RecibirDaño(25);
}
El arma no necesita saber si golpeó:
Solo necesita saber que implementa IDamageable.
interface
implementación
desacoplamiento