Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
    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();
    }