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);

    }
}