public static bool IsPersistantListenerValid(UnityEventBaseEx dummyEvent, string methodName, Object uObject, UnityEngine.Events.PersistentListenerMode modeEnum, Type argumentType) { if (uObject == null || string.IsNullOrEmpty(methodName)) { return(false); } return(dummyEvent.FindMethod(methodName, uObject.GetType(), modeEnum, argumentType) != null); }
static string GetEventParams(UnityEventBaseEx evt) { var methodInfo = evt.FindMethod("Invoke", evt.GetType(), UnityEngine.Events.PersistentListenerMode.EventDefined, null); var sb = new StringBuilder(); sb.Append(" ("); var types = methodInfo.GetParameters().Select(x => x.ParameterType).ToArray(); for (int i = 0; i < types.Length; i++) { sb.Append(types[i].Name); if (i < types.Length - 1) { sb.Append(", "); } } sb.Append(")"); return(sb.ToString()); }