//只能更改动态加入的UI UpdateKey public bool UF_ChangeUIUpdateKey(string source, string target) { IUIUpdate ui = this.UF_GetDynamicUI(source); if (ui == null) { Debugger.UF_Warn(string.Format("Change UI UpdateKey Failed,Can not find UI[{0}] in Dynamic", source ?? "")); return(false); } else if (MapDynamicUI.ContainsKey(target)) { Debugger.UF_Warn(string.Format("Change UI UpdateKey Failed,Same UI UpdateKey{0}] Has Exist", target ?? "")); return(false); } ui.updateKey = target; //移除原有Key MapDynamicUI.Remove(source); //添加新key MapDynamicUI.Add(target, ui); return(true); }
public virtual void UF_AddUI(IUIUpdate ui, bool firstSibling) { if (ui != null) { if (!string.IsNullOrEmpty(ui.updateKey) && !MapDynamicUI.ContainsKey(ui.updateKey)) { MapDynamicUI.Add(ui.updateKey, ui); } else { //如果没有或有重复UpdateKey ,则使用InstanceID 来代替 int insID = ((Object)ui).GetInstanceID(); MapDynamicUI.Add(insID.ToString(), ui); Debugger.UF_Warn(string.Format("UI Update Key[{0}] Is Same Or Empty,Map With Instance ID:{1}", ui.updateKey ?? "", insID)); } GameObject uiobject = (ui as MonoBehaviour).gameObject; uiobject.transform.SetParent(this.transform, false); uiobject.transform.localScale = Vector3.one; if (firstSibling) { uiobject.transform.SetAsFirstSibling(); } } }