Aqui podemos aplicar algo muy importante de POO
La herencia y clases asbtractas:
Creamos una base con los comportamientos que compartiran nuestros power ups
using UnityEngine;
[RequireComponent(typeof(Collider2D))]
public abstract class PowerUp : MonoBehaviour
{
[SerializeField, Range(-20, 20)] protected float value;
protected void OnTriggerEnter2D(Collider2D other)
{
if (!other.CompareTag("Player")) return;
Power();
Destroy(gameObject);
}
protected abstract void Power();
}
Y a partir de ahi, unicamente cambiamos el comportamiento de cada power up.
public class PowerUpTime : PowerUp
{
protected override void Power()
{
GameManager.Instance.ChangeTime(value);
}
}
Asi evitamos hacer un swtich o un if para comprobar el tipo de power Up
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?