static int Clear(IntPtr L) { LuaScriptMgr.CheckArgsCount(L, 1); EventDelegate obj = (EventDelegate)LuaScriptMgr.GetNetObjectSelf(L, 1, "EventDelegate"); obj.Clear(); return(0); }
static public int Clear(IntPtr l) { try { EventDelegate self = (EventDelegate)checkSelf(l); self.Clear(); pushValue(l, true); return(1); } catch (Exception e) { return(error(l, e)); } }
private void DestroyEvents(List <EventDelegate> Events) { for (int i = 0; i < Events.Count; i++) { EventDelegate eventDelegate = Events[i]; if (eventDelegate != null) { eventDelegate.Clear(); } } Events.Clear(); Events = null; }
static int Clear(IntPtr L) { try { ToLua.CheckArgsCount(L, 1); EventDelegate obj = (EventDelegate)ToLua.CheckObject(L, 1, typeof(EventDelegate)); obj.Clear(); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
private static int Clear(IntPtr L) { int result; try { ToLua.CheckArgsCount(L, 1); EventDelegate eventDelegate = (EventDelegate)ToLua.CheckObject(L, 1, typeof(EventDelegate)); eventDelegate.Clear(); result = 0; } catch (Exception e) { result = LuaDLL.toluaL_exception(L, e, null); } return(result); }
public static int Clear(IntPtr l) { int result; try { EventDelegate eventDelegate = (EventDelegate)LuaObject.checkSelf(l); eventDelegate.Clear(); LuaObject.pushValue(l, true); result = 1; } catch (Exception e) { result = LuaObject.error(l, e); } return(result); }
static int _m_Clear(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); EventDelegate __cl_gen_to_be_invoked = (EventDelegate)translator.FastGetCSObj(L, 1); { __cl_gen_to_be_invoked.Clear( ); return(0); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } }
/// <summary> /// Draw an editor field for the Unity Delegate. /// </summary> static public bool Field(Object undoObject, EventDelegate del, bool removeButton, bool minimalistic) { if (del == null) { return(false); } bool prev = GUI.changed; GUI.changed = false; bool retVal = false; MonoBehaviour target = del.target; bool remove = false; if (removeButton && (del.target != null || del.isValid)) { if (!minimalistic) { NGUIEditorTools.SetLabelWidth(82f); } if (del.target == null && del.isValid) { EditorGUILayout.LabelField("Notify", del.ToString()); } else { target = EditorGUILayout.ObjectField("Notify", del.target, typeof(MonoBehaviour), true) as MonoBehaviour; } GUILayout.Space(-18f); GUILayout.BeginHorizontal(); GUILayout.Space(70f); if (GUILayout.Button("", "ToggleMixed", GUILayout.Width(20f), GUILayout.Height(16f))) { target = null; remove = true; } GUILayout.EndHorizontal(); } else { target = EditorGUILayout.ObjectField("Notify", del.target, typeof(MonoBehaviour), true) as MonoBehaviour; } if (remove) { NGUIEditorTools.RegisterUndo("Delegate Selection", undoObject); del.Clear(); EditorUtility.SetDirty(undoObject); } else if (del.target != target) { NGUIEditorTools.RegisterUndo("Delegate Selection", undoObject); del.target = target; EditorUtility.SetDirty(undoObject); } if (del.target != null && del.target.gameObject != null) { GameObject go = del.target.gameObject; List <Entry> list = GetMethods(go); int index = 0; string[] names = PropertyReferenceDrawer.GetNames(list, del.ToString(), out index); int choice = 0; GUILayout.BeginHorizontal(); choice = EditorGUILayout.Popup("Method", index, names); NGUIEditorTools.DrawPadding(); GUILayout.EndHorizontal(); if (choice > 0 && choice != index) { Entry entry = list[choice - 1]; NGUIEditorTools.RegisterUndo("Delegate Selection", undoObject); del.target = entry.target as MonoBehaviour; del.methodName = entry.name; EditorUtility.SetDirty(undoObject); retVal = true; } GUI.changed = false; EventDelegate.Parameter[] ps = del.parameters; if (ps != null) { for (int i = 0; i < ps.Length; ++i) { EventDelegate.Parameter param = ps[i]; Object obj = EditorGUILayout.ObjectField(" Arg " + i, param.obj, typeof(Object), true); if (GUI.changed) { GUI.changed = false; param.obj = obj; EditorUtility.SetDirty(undoObject); } if (obj == null) { continue; } GameObject selGO = null; System.Type type = obj.GetType(); if (type == typeof(GameObject)) { selGO = obj as GameObject; } else if (type.IsSubclassOf(typeof(Component))) { selGO = (obj as Component).gameObject; } if (selGO != null) { // Parameters must be exact -- they can't be converted like property bindings PropertyReferenceDrawer.filter = param.expectedType; PropertyReferenceDrawer.canConvert = false; List <PropertyReferenceDrawer.Entry> ents = PropertyReferenceDrawer.GetProperties(selGO, true, false); int selection; string[] props = GetNames(ents, NGUITools.GetFuncName(param.obj, param.field), out selection); GUILayout.BeginHorizontal(); int newSel = EditorGUILayout.Popup(" ", selection, props); NGUIEditorTools.DrawPadding(); GUILayout.EndHorizontal(); if (GUI.changed) { GUI.changed = false; if (newSel == 0) { param.obj = selGO; param.field = null; } else { param.obj = ents[newSel - 1].target; param.field = ents[newSel - 1].name; } EditorUtility.SetDirty(undoObject); } } else if (!string.IsNullOrEmpty(param.field)) { param.field = null; EditorUtility.SetDirty(undoObject); } PropertyReferenceDrawer.filter = typeof(void); PropertyReferenceDrawer.canConvert = true; } } } else { retVal = GUI.changed; } GUI.changed = prev; return(retVal); }
/// <summary> /// Draw an editor field for the Unity Delegate. /// </summary> static public bool Field (Object undoObject, EventDelegate del, bool removeButton) { if (del == null) return false; bool prev = GUI.changed; GUI.changed = false; bool retVal = false; MonoBehaviour target = del.target; bool remove = false; if (removeButton && (del.target != null || del.isValid)) { if (del.target == null && del.isValid) { EditorGUILayout.LabelField("Notify", del.ToString()); } else { target = EditorGUILayout.ObjectField("Notify", del.target, typeof(MonoBehaviour), true) as MonoBehaviour; } GUILayout.Space(-20f); GUILayout.BeginHorizontal(); GUILayout.Space(64f); #if UNITY_3_5 if (GUILayout.Button("X", GUILayout.Width(20f))) #else if (GUILayout.Button("", "ToggleMixed", GUILayout.Width(20f))) #endif { target = null; remove = true; } GUILayout.EndHorizontal(); } else { target = EditorGUILayout.ObjectField("Notify", del.target, typeof(MonoBehaviour), true) as MonoBehaviour; } if (remove) { NGUIEditorTools.RegisterUndo("Delegate Selection", undoObject); del.Clear(); EditorUtility.SetDirty(undoObject); } else if (del.target != target) { NGUIEditorTools.RegisterUndo("Delegate Selection", undoObject); del.target = target; EditorUtility.SetDirty(undoObject); } if (del.target != null && del.target.gameObject != null) { GameObject go = del.target.gameObject; List<Entry> list = GetMethods(go); int index = 0; string[] names = GetMethodNames(list, del.ToString(), out index); int choice = 0; GUILayout.BeginHorizontal(); choice = EditorGUILayout.Popup("Method", index, names); GUILayout.Space(18f); GUILayout.EndHorizontal(); if (choice > 0) { if (choice != index) { Entry entry = list[choice - 1]; NGUIEditorTools.RegisterUndo("Delegate Selection", undoObject); del.target = entry.target; del.methodName = entry.method.Name; EditorUtility.SetDirty(undoObject); GUI.changed = prev; return true; } } } retVal = GUI.changed; GUI.changed = prev; return retVal; }
/// <summary> /// Draw an editor field for the Unity Delegate. /// </summary> static public bool Field(Object undoObject, EventDelegate del, bool removeButton) { if (del == null) { return(false); } bool prev = GUI.changed; GUI.changed = false; bool retVal = false; MonoBehaviour target = del.target; bool remove = false; if (removeButton && (del.target != null || del.isValid)) { if (del.target == null && del.isValid) { EditorGUILayout.LabelField("Notify", del.ToString()); } else { target = EditorGUILayout.ObjectField("Notify", del.target, typeof(MonoBehaviour), true) as MonoBehaviour; } GUILayout.Space(-20f); GUILayout.BeginHorizontal(); GUILayout.Space(64f); #if UNITY_3_5 if (GUILayout.Button("X", GUILayout.Width(20f))) #else if (GUILayout.Button("", "ToggleMixed", GUILayout.Width(20f))) #endif { target = null; remove = true; } GUILayout.EndHorizontal(); } else { target = EditorGUILayout.ObjectField("Notify", del.target, typeof(MonoBehaviour), true) as MonoBehaviour; } if (remove) { NGUIEditorTools.RegisterUndo("Delegate Selection", undoObject); del.Clear(); EditorUtility.SetDirty(undoObject); } else if (del.target != target) { NGUIEditorTools.RegisterUndo("Delegate Selection", undoObject); del.target = target; EditorUtility.SetDirty(undoObject); } if (del.target != null && del.target.gameObject != null) { GameObject go = del.target.gameObject; List <Entry> list = GetMethods(go); int index = 0; string[] names = GetMethodNames(list, del.ToString(), out index); int choice = 0; GUILayout.BeginHorizontal(); choice = EditorGUILayout.Popup("Method", index, names); GUILayout.Space(18f); GUILayout.EndHorizontal(); if (choice > 0) { if (choice != index) { Entry entry = list[choice - 1]; NGUIEditorTools.RegisterUndo("Delegate Selection", undoObject); del.target = entry.target; del.methodName = entry.method.Name; EditorUtility.SetDirty(undoObject); GUI.changed = prev; return(true); } } } retVal = GUI.changed; GUI.changed = prev; return(retVal); }
/// <summary> /// Draw an editor field for the Unity Delegate. /// </summary> static public bool Field (Object undoObject, EventDelegate del, bool removeButton, bool minimalistic) { if (del == null) return false; bool prev = GUI.changed; GUI.changed = false; bool retVal = false; MonoBehaviour target = del.target; bool remove = false; if (removeButton && (del.target != null || del.isValid)) { if (!minimalistic) NGUIEditorTools.SetLabelWidth(82f); if (del.target == null && del.isValid) { EditorGUILayout.LabelField("Notify", del.ToString()); } else { target = EditorGUILayout.ObjectField("Notify", del.target, typeof(MonoBehaviour), true) as MonoBehaviour; } GUILayout.Space(-18f); GUILayout.BeginHorizontal(); GUILayout.Space(70f); if (GUILayout.Button("", "ToggleMixed", GUILayout.Width(20f), GUILayout.Height(16f))) { target = null; remove = true; } GUILayout.EndHorizontal(); } else target = EditorGUILayout.ObjectField("Notify", del.target, typeof(MonoBehaviour), true) as MonoBehaviour; if (remove) { NGUIEditorTools.RegisterUndo("Delegate Selection", undoObject); del.Clear(); EditorUtility.SetDirty(undoObject); } else if (del.target != target) { NGUIEditorTools.RegisterUndo("Delegate Selection", undoObject); del.target = target; EditorUtility.SetDirty(undoObject); } if (del.target != null && del.target.gameObject != null) { GameObject go = del.target.gameObject; List<Entry> list = GetMethods(go); int index = 0; string[] names = PropertyReferenceDrawer.GetNames(list, del.ToString(), out index); int choice = 0; GUILayout.BeginHorizontal(); choice = EditorGUILayout.Popup("Method", index, names); NGUIEditorTools.DrawPadding(); GUILayout.EndHorizontal(); if (choice > 0 && choice != index) { Entry entry = list[choice - 1]; NGUIEditorTools.RegisterUndo("Delegate Selection", undoObject); del.target = entry.target as MonoBehaviour; del.methodName = entry.name; EditorUtility.SetDirty(undoObject); retVal = true; } GUI.changed = false; EventDelegate.Parameter[] ps = del.parameters; if (ps != null) { for (int i = 0; i < ps.Length; ++i) { EventDelegate.Parameter param = ps[i]; Object obj = EditorGUILayout.ObjectField(" Arg " + i, param.obj, typeof(Object), true); if (GUI.changed) { GUI.changed = false; param.obj = obj; EditorUtility.SetDirty(undoObject); } if (obj == null) continue; GameObject selGO = null; System.Type type = obj.GetType(); if (type == typeof(GameObject)) selGO = obj as GameObject; else if (type.IsSubclassOf(typeof(Component))) selGO = (obj as Component).gameObject; if (selGO != null) { // Parameters must be exact -- they can't be converted like property bindings PropertyReferenceDrawer.filter = param.expectedType; PropertyReferenceDrawer.canConvert = false; List<PropertyReferenceDrawer.Entry> ents = PropertyReferenceDrawer.GetProperties(selGO, true, false); int selection; string[] props = GetNames(ents, NGUITools.GetFuncName(param.obj, param.field), out selection); GUILayout.BeginHorizontal(); int newSel = EditorGUILayout.Popup(" ", selection, props); NGUIEditorTools.DrawPadding(); GUILayout.EndHorizontal(); if (GUI.changed) { GUI.changed = false; if (newSel == 0) { param.obj = selGO; param.field = null; } else { param.obj = ents[newSel - 1].target; param.field = ents[newSel - 1].name; } EditorUtility.SetDirty(undoObject); } } else if (!string.IsNullOrEmpty(param.field)) { param.field = null; EditorUtility.SetDirty(undoObject); } PropertyReferenceDrawer.filter = typeof(void); PropertyReferenceDrawer.canConvert = true; } } } else retVal = GUI.changed; GUI.changed = prev; return retVal; }
void OnDestroy() { RdDelegate.Clear(); Facade.EventCenter.RemoveEventListener(gameObject.name); }
public static bool Field(EventDelegate del, Object undoObject) { if (null == del) { return(false); } bool prev = GUI.changed; GUI.changed = false; bool retVal = false; MonoBehaviour target = del.target; bool remove = false; if (del.target != null || del.isValid) { EditorGUIUtility.labelWidth = 82f; if (null == del.target && del.isValid) { EditorGUILayout.LabelField("事件", del.ToString()); } else { target = EditorGUILayout.ObjectField("事件", del.target, typeof(MonoBehaviour), true) as MonoBehaviour; } GUILayout.Space(-18f); GUILayout.BeginHorizontal(); GUILayout.Space(70f); if (GUILayout.Button("", "ToggleMixed", GUILayout.Width(20f), GUILayout.Height(16f))) { target = null; remove = true; } GUILayout.EndHorizontal(); } else { target = EditorGUILayout.ObjectField("事件", del.target, typeof(MonoBehaviour), true) as MonoBehaviour; } if (remove) { del.Clear(); EditorUtility.SetDirty(undoObject); } else if (del.target != target) { del.target = target; EditorUtility.SetDirty(undoObject); } if (del.target != null && del.target.gameObject != null) { GameObject go = del.target.gameObject; List <Entry> list = GetMethods(go); int index = 0; string[] names = PropertyReferenceDrawer.GetNames(list, del.ToString(), out index); Debug.Log(del.ToString()); int choice = 0; GUILayout.BeginHorizontal(); choice = EditorGUILayout.Popup("方法", index, names); GUILayout.Space(18f); GUILayout.EndHorizontal(); if (choice > 0 && choice != index) { Debug.Log(choice + index); Entry entry = list[choice - 1]; del.target = entry.target as MonoBehaviour; del.methodName = entry.name; del.extentName = entry.extendName; del.ParamTypes = entry.paramTypes; EditorUtility.SetDirty(undoObject); retVal = true; } GUI.changed = false; EventDelegate.Parameter[] ps = del.parameters; if (ps != null) { for (int i = 0; i < ps.Length; ++i) { EventDelegate.Parameter param = ps[i]; Type t = Type.GetType(del.ParamTypes[i]); Object obj = null; int select = 0; int index1 = 0; if (t != typeof(MonoBehaviour)) { if (t == typeof(string)) { param.stringValue = EditorGUILayout.TextField(new GUIContent("参数" + i), param.stringValue); if (GUI.changed) { GUI.changed = false; EditorUtility.SetDirty(undoObject); } } else if (t == typeof(int)) { param.intValue = EditorGUILayout.IntField("参数" + i, param.intValue); if (GUI.changed) { GUI.changed = false; EditorUtility.SetDirty(undoObject); } } else if (t == typeof(GenericType)) { //Debug.Log("fwefer2342343"); ////如果是泛型的话 //select = EditorGUILayout.Popup(index1,Enum.GetNames(typeof(ParamType))); //switch ((ParamType)select) //{ // case ParamType.Int: // Debug.Log("fwefwef"); // param.intValue = EditorGUILayout.IntField("参数" + i, param.intValue); // del.mParamGenericTypes.Add("System.Int"); // break; // case ParamType.String: // del.mParamGenericTypes.Add("System.String"); // param.stringValue = EditorGUILayout.TextField(new GUIContent("参数" + i), param.stringValue); // break; //} } PropertyReferenceDrawer.filter = typeof(void); PropertyReferenceDrawer.canConvert = true; } else { obj = EditorGUILayout.ObjectField("参数" + i, param.obj, typeof(Object), true); if (GUI.changed) { GUI.changed = false; param.obj = obj; EditorUtility.SetDirty(undoObject); } if (obj == null) { continue; } GameObject selGO = null; System.Type type = obj.GetType(); if (type == typeof(GameObject)) { selGO = obj as GameObject; } else if (type.IsSubclassOf(typeof(Component))) { selGO = (obj as Component).gameObject; } if (selGO != null) { // Parameters must be exact -- they can't be converted like property bindings PropertyReferenceDrawer.filter = param.expectedType; PropertyReferenceDrawer.canConvert = false; List <PropertyReferenceDrawer.Entry> ents = PropertyReferenceDrawer.GetProperties(selGO, true, false); int selection; string[] props = GetNames(ents, EditorTool.GetFuncName(param.obj, param.field), out selection); GUILayout.BeginHorizontal(); int newSel = EditorGUILayout.Popup(" ", selection, props); GUILayout.Space(18f); GUILayout.EndHorizontal(); if (GUI.changed) { GUI.changed = false; if (newSel == 0) { param.obj = selGO; param.field = null; } else { param.obj = ents[newSel - 1].target; param.field = ents[newSel - 1].name; } EditorUtility.SetDirty(undoObject); } } else if (!string.IsNullOrEmpty(param.field)) { param.field = null; EditorUtility.SetDirty(undoObject); } PropertyReferenceDrawer.filter = typeof(void); PropertyReferenceDrawer.canConvert = true; } } } } else { retVal = GUI.changed; } GUI.changed = prev; return(retVal); }