public bool RemoveEvent(string name, UIEventType ev, EventDelegate.Callback callback) { GUILink.UILink uILink = this.GetUILink(name); bool result; if (uILink == null) { Debug.Log(string.Format("[GUILink] AddEvent object {0} is not exist", name)); result = false; } else { UIEventTrigger uIEventTrigger = uILink.Get <UIEventTrigger>(); if (uIEventTrigger == null) { result = false; } else { List <EventDelegate> delegateList = GUILink.GetDelegateList(uIEventTrigger, ev); result = (delegateList != null && EventDelegate.Remove(delegateList, callback)); } } return(result); }
public override void OnInspectorGUI() { GUILink link = target as GUILink; GUI.changed = false; if (link.Links != null) { RegisterUndo("GUILink Change", link); for (int i = 0; i < link.Links.Count; i++) { GUILink.UILink uilink = link.Links[i]; GameObject linkobj = uilink.LinkObj; if (!linkobj) { uilink.Name = errostr; continue; } if (linkobj) { if (string.IsNullOrEmpty(uilink.Name) || uilink.Name == errostr) { uilink.Name = linkobj.name; } if (!uilink.component || uilink.component.gameObject != linkobj.gameObject) { uilink.component = linkobj.gameObject.GetComponent <MonoBehaviour>(); } } } EditorUtility.SetDirty(link); } base.OnInspectorGUI(); }
public EventDelegate SetEvent(string name, UIEventType ev, EventDelegate.Callback callback, float interval = 0f) { GUILink.UILink uILink = this.GetUILink(name); EventDelegate result; if (uILink == null) { Debug.Log(string.Format("[GUILink] AddEvent object {0} is not exist", name)); result = null; } else { UIEventTrigger uIEventTrigger = uILink.Get <UIEventTrigger>(); if (null == uIEventTrigger) { uIEventTrigger = uILink.Add <UIEventTrigger>(); } List <EventDelegate> delegateList = GUILink.GetDelegateList(uIEventTrigger, ev); if (delegateList != null) { result = EventDelegate.Set(delegateList, callback, interval); } else { result = null; } } return(result); }
public void RemoveComponent <T>(string obj_name) where T : UGuiForm { GUILink.UILink uILink = this.GetUILink(obj_name); if (uILink != null) { uILink.RemoveComponent <T>(); } }
private GUILink.UILink GetUILink(string name) { this.DoInitIfDont(); GUILink.UILink uILink = null; GUILink.UILink result; if (this.all_objs.TryGetValue(name, out uILink)) { result = uILink; } else { result = null; } return(result); }
private GameObject GetGameObject(string name) { GUILink.UILink uILink = this.GetUILink(name); GameObject result; if (uILink == null) { result = null; } else { result = uILink.LinkObj; } return(result); }
public T GetComponent <T>(string obj_name) where T : UGuiComponent { GUILink.UILink uILink = this.GetUILink(obj_name); T result; if (uILink == null) { result = default(T); } else { result = uILink.GetComponent <T>(); } return(result); }
public void ReBuildLinkMap() { if (this.Links != null) { this.all_objs.Clear(); for (int i = 0; i < this.Links.Count; i++) { GUILink.UILink uILink = this.Links[i]; if (uILink != null && uILink.LinkObj) { this.all_objs[uILink.Name] = uILink; } } } }
public GameObject Get(string name) { this.DoInitIfDont(); GUILink.UILink uILink = null; this.all_objs.TryGetValue(name, out uILink); GameObject result; if (uILink == null) { Debug.Log(string.Format("[GUILink] Get object {0} is not exist", name)); result = null; } else { result = uILink.LinkObj; } return(result); }
public T Get <T>(string name) where T : Component { this.DoInitIfDont(); GUILink.UILink uILink = null; this.all_objs.TryGetValue(name, out uILink); T result; if (uILink == null) { Debug.Log(string.Format("[GUILink] Get<T> object {0} is not exist", name)); result = default(T); } else { result = uILink.Get <T>(); } return(result); }
private void DoInitIfDont() { if (!this.inited) { this.inited = true; if (this.Links != null) { for (int i = 0; i < this.Links.Count; i++) { GUILink.UILink uILink = this.Links[i]; if (uILink != null && uILink.LinkObj) { this.all_objs[uILink.Name] = uILink; } } } } }
private static void AddGameObjectToLink() { UnityEngine.GameObject select = Selection.activeGameObject; if (select == null) { return; } if (!select.activeInHierarchy) { Debug.LogError(string.Format("【GUILink】自动添加对象失败:请先激活需要添加的对象和GUILink对象", select.name), select); return; } GUILink link = FindInParents <GUILink>(select.transform); if (link == null) { Debug.LogError(string.Format("【GUILink】自动添加对象失败:{0}父节点无GUILink组件", select.name), select); return; } if (link.gameObject == select && select.transform.parent != null) { link = FindInParents <GUILink>(select.transform.parent); } if (link == null) { Debug.LogError(string.Format("【GUILink】自动添加对象失败:{0}父节点无GUILink组件", select.name), select); return; } link.ReBuildLinkMap(); if (link.Get(select.name) == null) { GUILink.UILink item = new GUILink.UILink(); item.Name = select.name; item.LinkObj = select; link.Links.Add(item); Debug.Log(string.Format("【GUILink】自动添加对象成功:{0} GUILink:{1}", select.name, link.name), link); } else { Debug.LogError(string.Format("【GUILink】自动添加对象失败:已经存在重复名字{0}的对象 GUILink:{1}", select.name, link.name), link); } }