public class GameEvent : ScriptableObject
{
private List<GameEventListener> listener = new List<GameEventListener>();
public void Raise() {
for (int i = listener.Count - 1; i >= 0 ; i--) {
listener[i].OnEventRaised();
}
}
public void RegisterListener(GameEventListener newListener) {
if (!listener.Contains(newListener)) {
listener.Add(newListener);
}
Debug.Log(listener.Count);
}
public void UnregisterListener(GameEventListener oldListener) {
if (!listener.Contains(oldListener))
listener.Remove(oldListener);
}
}