public void Invoke <T>(T data) { listeners.ForEach(baseListener => { GameEventListener <T> listener = (GameEventListener <T>)baseListener; if (listener != null) { listener.Invoke(data); } else { Debug.Log($"Could not invoke a listener in GameEvent: {name}"); } }); }