/// <summary>
 /// Unsubscribes a listener to the controller's events.
 /// Returns false if the listener wasn't subscribed yet.
 /// </summary>
 /// <param name="listener">The listener to unsubscribe</param>
 /// <returns>If the listener was successfully unsubscribed</returns>
 public bool RemoveListener(CharacterControllerListener listener)
 {
     if (!_listeners.Contains(listener))
         return false;
     _listeners.Remove(listener);
     return true;
 }
 /// <summary>
 /// Subscribes a listener to the controller's events.
 /// Returns false if the listener was already subscribed.
 /// </summary>
 /// <param name="listener">The listener to subscribe</param>
 /// <returns>If the listener was successfully subscribed</returns>
 public bool AddListener(CharacterControllerListener listener)
 {
     if (_listeners.Contains(listener))
         return false;
     _listeners.Add(listener);
     return true;
 }