static List <MethodInfo> GetAllMethods() { List <MethodInfo> allCallbackableInfos = new List <MethodInfo>(); MethodInfo[] ms = typeof(LEUnitAnimatorManager).GetMethods(BindingFlags.Instance | BindingFlags.Public); foreach (MethodInfo m in ms) { AMBCallback attr = System.Attribute.GetCustomAttribute(m, typeof(AMBCallback)) as AMBCallback; if (attr != null) { allCallbackableInfos.Add(m); } } return(allCallbackableInfos); }
/* * void DrawEnterWPCallbacksEnum(string[] functionNames, List<ParameterInfo[]> parametInfos) * { * * for (int i = 0; i < amb.enterWPCallbackIndices.Count; i++) * { * * * GUILayout.BeginHorizontal(); * * * GUI.color = Color.red; * if (GUILayout.Button("Delete")) { * if (amb.enterWPCallbackIndices.Count > 0) { * * amb.enterWPCallbackIndices.RemoveAt(i); * continue; * } * } * GUI.color = Color.white; * * GUILayout.EndHorizontal(); * * GUILayout.BeginVertical("Box"); * { * * } * GUILayout.EndVertical(); * } * } */ #endregion string[] GetCallBackNames() { List <string> callbackInfoNames = new List <string>(); MethodInfo[] ms = typeof(LEUnitAnimatorManager).GetMethods(BindingFlags.Instance | BindingFlags.Public); foreach (MethodInfo m in ms) { AMBCallback attr = System.Attribute.GetCustomAttribute(m, typeof(AMBCallback)) as AMBCallback; if (attr != null) { callbackInfoNames.Add(m.Name); } } string[] names = callbackInfoNames.ToArray(); return(names); }
void InitAllMethodOfType() { List <MethodInfo> voidOfType = new List <MethodInfo>(); List <MethodInfo> intOfType = new List <MethodInfo>(); List <MethodInfo> boolOfType = new List <MethodInfo>(); List <MethodInfo> vec3OfType = new List <MethodInfo>(); MethodInfo[] ms = animatorManagerType.GetMethods(BindingFlags.Instance | BindingFlags.Public); foreach (MethodInfo m in ms) { Visin1_1.AMBCallback attr = System.Attribute.GetCustomAttribute(m, typeof(Visin1_1.AMBCallback)) as Visin1_1.AMBCallback; if (attr != null) { ParameterInfo[] parameterInfos = m.GetParameters(); if (parameterInfos.Length == 0) { voidOfType.Add(m); } else if (parameterInfos[0].ParameterType == typeof(float)) { intOfType.Add(m); } else if (parameterInfos[0].ParameterType == typeof(bool)) { boolOfType.Add(m); } else if (parameterInfos[0].ParameterType == typeof(Vector3)) { vec3OfType.Add(m); } } } allVoidCallBacksDic.Add(animatorManagerType, voidOfType); allIntCallBackDic.Add(animatorManagerType, intOfType); allBoolCallBackDic.Add(animatorManagerType, boolOfType); allVec3CallBackDic.Add(animatorManagerType, vec3OfType); }
void FetchCallBackMethod() { //Clean voidCallbacNames.Clear(); voidCallbackMethods.Clear(); floatCallbackNames.Clear(); floatCallbackMethods.Clear(); boolCallBackNames.Clear(); boolCallBackMethods.Clear(); vec3CallBackNames.Clear(); vec3CallBackMethods.Clear(); //Add and Fetch MethodInfo Non = GetNonVoid(); voidCallbacNames.Add("Non"); voidCallbackMethods.Add(Non); MethodInfo NonFloat = GetNonFloat(); floatCallbackNames.Add("NonFloat"); floatCallbackMethods.Add(NonFloat); MethodInfo NonBool = GetNonBool(); boolCallBackNames.Add("NonBool"); boolCallBackMethods.Add(NonBool); MethodInfo NonVec3 = GetNonVec3(); vec3CallBackNames.Add("NonVec3"); vec3CallBackMethods.Add(NonVec3); MethodInfo[] ms = animatorManagerTypes[ambBase.managerIndex].GetMethods(BindingFlags.Instance | BindingFlags.Public); foreach (MethodInfo m in ms) { Visin1_1.AMBCallback attr = System.Attribute.GetCustomAttribute(m, typeof(Visin1_1.AMBCallback)) as Visin1_1.AMBCallback; if (attr != null) { ParameterInfo[] parameterInfos = m.GetParameters(); if (parameterInfos.Length == 0) //if There is no parameter pass to the function { voidCallbacNames.Add(m.Name); voidCallbackMethods.Add(m); } else if (parameterInfos[0].ParameterType == typeof(float)) //if it pass a int as parameter { floatCallbackNames.Add(m.Name); floatCallbackMethods.Add(m); } else if (parameterInfos[0].ParameterType == typeof(bool)) { boolCallBackNames.Add(m.Name); boolCallBackMethods.Add(m); } else if (parameterInfos[0].ParameterType == typeof(Vector3)) { vec3CallBackNames.Add(m.Name); vec3CallBackMethods.Add(m); } } } //Get Array void_CallBackNames = voidCallbacNames.ToArray(); float_CallBackNames = floatCallbackNames.ToArray(); bool_CallBackNames = boolCallBackNames.ToArray(); vec3_CallBackNames = vec3CallBackNames.ToArray(); }