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; } } } } }
public static void ScrollRectListener(ScrollRect sr, LuaFunction func, LuaRef self) { CacheLuaFunction(sr, func); sr.onValueChanged.AddListener((vc2) => { func.Call(self, vc2); }); }
public static void InputFieldEndEdit(InputField inputfield, LuaFunction func, LuaRef self) { CacheLuaFunction(inputfield, func); inputfield.onEndEdit.RemoveAllListeners(); inputfield.onEndEdit.AddListener((val) => { func.Call(self, val); }); }
public static void ScrollbarListener(Scrollbar scrollbar, LuaFunction func, LuaRef self) { CacheLuaFunction(scrollbar, func); scrollbar.onValueChanged.RemoveAllListeners(); scrollbar.onValueChanged.AddListener((val) => { func.Call(self, val); }); }
public static void ToggleListener(Toggle toggle, LuaFunction func, LuaRef self) { CacheLuaFunction(toggle, func); toggle.onValueChanged.RemoveAllListeners(); toggle.onValueChanged.AddListener((val) => { func.Call(self, val); }); }
public static void DropdownListener(Dropdown dropdown, LuaFunction func, LuaRef self) { CacheLuaFunction(dropdown, func); dropdown.onValueChanged.RemoveAllListeners(); dropdown.onValueChanged.AddListener((val) => { func.Call(self, val); }); }
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); } }
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); }
public static void ButtonListener(Button btn, LuaFunction luaFunc, LuaRef self) { CacheLuaFunction(btn, luaFunc); btn.onClick.AddListener(() => luaFunc.Call(self)); }
public static void AddClick(GameObject go, LuaFunction luaFunc, LuaRef self) { CacheLuaFunction(go, luaFunc); go.GetComponent <Button>().onClick.AddListener(() => luaFunc.Call(self, go)); }
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); } }