コード例 #1
0
        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);
        }
コード例 #2
0
        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());
        }