Example #1
0
        public static void RemoveAction(GameObject go, LuaFunction luaFunc)
        {
            List <LuaFunction> luafuncs = null;

            if (actions.TryGetValue(go, out luafuncs))
            {
                if (luaFunc == null)
                {
                    for (int i = 0; i < luafuncs.Count; i++)
                    {
                        luafuncs[i].Dispose();
                    }

                    luafuncs.Clear();
                }
                else
                {
                    for (int i = 0; i < luafuncs.Count; i++)
                    {
                        if (luaFunc == luafuncs[i])
                        {
                            luaFunc.Dispose();
                            luafuncs.RemoveAt(i);
                            break;
                        }
                    }
                }
            }
        }
Example #2
0
 public static void ScrollRectListener(ScrollRect sr, LuaFunction func, LuaRef self)
 {
     CacheLuaFunction(sr, func);
     sr.onValueChanged.AddListener((vc2) =>
     {
         func.Call(self, vc2);
     });
 }
Example #3
0
 public static void InputFieldEndEdit(InputField inputfield, LuaFunction func, LuaRef self)
 {
     CacheLuaFunction(inputfield, func);
     inputfield.onEndEdit.RemoveAllListeners();
     inputfield.onEndEdit.AddListener((val) =>
     {
         func.Call(self, val);
     });
 }
Example #4
0
 public static void ScrollbarListener(Scrollbar scrollbar, LuaFunction func, LuaRef self)
 {
     CacheLuaFunction(scrollbar, func);
     scrollbar.onValueChanged.RemoveAllListeners();
     scrollbar.onValueChanged.AddListener((val) =>
     {
         func.Call(self, val);
     });
 }
Example #5
0
 public static void ToggleListener(Toggle toggle, LuaFunction func, LuaRef self)
 {
     CacheLuaFunction(toggle, func);
     toggle.onValueChanged.RemoveAllListeners();
     toggle.onValueChanged.AddListener((val) =>
     {
         func.Call(self, val);
     });
 }
Example #6
0
 public static void DropdownListener(Dropdown dropdown, LuaFunction func, LuaRef self)
 {
     CacheLuaFunction(dropdown, func);
     dropdown.onValueChanged.RemoveAllListeners();
     dropdown.onValueChanged.AddListener((val) =>
     {
         func.Call(self, val);
     });
 }
Example #7
0
        private static void CacheLuaFunction(object obj, LuaFunction luaFunc)
        {
            List <LuaFunction> functions = null;

            if (actions.TryGetValue(obj, out functions))
            {
                functions.Add(luaFunc);
            }
            else
            {
                functions = new List <LuaFunction>();
                functions.Add(luaFunc);
                actions.Add(obj, functions);
            }
        }
Example #8
0
        public static void AddEventTrigger(GameObject go, EventTriggerType eventTriggerType, LuaFunction luaFunc, LuaRef self)
        {
            if (go == null || luaFunc == null)
            {
                return;
            }

            CacheLuaFunction(go, luaFunc);

            UnityAction <BaseEventData> click = (data) =>
            {
                luaFunc.Call(self, go, data);
            };

            EventTrigger.Entry eventTrigger = new EventTrigger.Entry();
            eventTrigger.eventID = eventTriggerType;
            eventTrigger.callback.AddListener(click);

            EventTrigger trigger = go.GetComponent <EventTrigger>();

            if (trigger == null)
            {
                trigger = go.AddComponent <EventTrigger>();
            }

            for (int i = 0; i < trigger.triggers.Count; ++i)
            {
                if (trigger.triggers[i].eventID == eventTriggerType)
                {
                    return;
                }
            }

            trigger.triggers.Add(eventTrigger);
        }
Example #9
0
 public static void ButtonListener(Button btn, LuaFunction luaFunc, LuaRef self)
 {
     CacheLuaFunction(btn, luaFunc);
     btn.onClick.AddListener(() => luaFunc.Call(self));
 }
Example #10
0
 public static void AddClick(GameObject go, LuaFunction luaFunc, LuaRef self)
 {
     CacheLuaFunction(go, luaFunc);
     go.GetComponent <Button>().onClick.AddListener(() => luaFunc.Call(self, go));
 }
Example #11
0
        public static void RemoveEventTrigger(GameObject go, EventTriggerType eventTriggerType, LuaFunction luaFunc)
        {
            if (go == null)
            {
                return;
            }

            EventTrigger trigger = go.GetComponent <EventTrigger>();

            if (trigger == null)
            {
                return;
            }

            EventTrigger.Entry eventTrigger = null;
            for (int i = 0; i < trigger.triggers.Count; ++i)
            {
                if (trigger.triggers[i].eventID == eventTriggerType)
                {
                    eventTrigger = trigger.triggers[i];
                    break;
                }
            }

            if (eventTrigger != null)
            {
                eventTrigger.callback.RemoveAllListeners();
                trigger.triggers.Remove(eventTrigger);
                RemoveAction(go, luaFunc);
            }
        }