Interfaces
·Uma interface, nesse contexto, não se trata da interface de usuário(UI), mas de uma ferramenta de Orientação à Objetos que nos permite abstrair classes à um conjunto de métodos comuns a todas elas.
Pegue por exemplo, Um ataque do jogador que pode atingir inimigos e objetos quebráveis, podemos implementá-lo da seguinte forma:
public interface IDamageable
{
void Damage(int amount);
}
No script do ataque
void OnTriggerEnter2D(Collider2D collision)
{
hit = collision.GetComponent<IDamageable>()
if(hit != null)
{
hit.Damage(dano);
}
}
No script do inimigo
public class Enemy: MonoBehaviour, IDamageable
{
int health = 100;
/* Implementação da classe
.
.
.
*/
void Damage(int amount)
{
health -= amount;
}
}
No script do objeto quebrável
public class Crate: MonoBehaviour, IDamageable
{
/* Implementação da classe
.
.
.
*/
void BreakObject()
{
Destroy(gameObject);
}
void Damage(int amount)
{
BreakObject();
}
}