/// <summary>
 /// Removes a persistent listener. Beware this is a hack using reflection.
 /// </summary>
 public void RemovePersistentListener(UnityAction <T, U, V, X> action)
 {
     if (!UnityEventReflection.TryAccessPersistentCalls(this, ref _persistentCallsObject))
     {
         return;
     }
     UnityEventReflection.RemovePersistentListener(_persistentCallsObject, action.Target as UnityEngine.Object, action.Method);
 }