void Update() { lock (mUiPackQueue) { if (mUiPackQueue.Count > 0) { tempUiPack = mUiPackQueue.Dequeue(); if (tempUiPack != null) { switch (tempUiPack.UiCommand) { case UIPack.UICommand.Show: Show(tempUiPack); break; case UIPack.UICommand.CreateAndShow: Create(tempUiPack); break; case UIPack.UICommand.Create: Create(tempUiPack); break; case UIPack.UICommand.Hide: Hide(tempUiPack); break; case UIPack.UICommand.Destroy: Destroy(tempUiPack); break; } } } } }
/// <summary> /// 创建UI实体 /// </summary> /// <param name="uiPack"></param> private void Create(UIPack uiPack) { UIBase ui = null; mUIDic.TryGetValue(uiPack.UIName, out ui); if (ui == null) { ResMgr.Instance.Load <GameObject>(uiPack.UIName, new LoadUIFinish(uiPack)); } }
/// <summary> /// 隐藏UI实体 /// </summary> /// <param name="uiPack"></param> private void Hide(UIPack uiPack) { UIBase ui = null; mUIDic.TryGetValue(uiPack.UIName, out ui); if (ui != null) { ui.Hide(uiPack.objs); } }
/// <summary> /// 删除UI /// </summary> /// <param name="uiPack"></param> private void Destroy(UIPack uiPack) { UIBase ui = null; mUIDic.TryGetValue(uiPack.UIName, out ui); if (ui != null) { mUIDic.Remove(ui.UIName); Destroy(ui.CacheGameobject); } }
public LoadUIFinish(UIPack uiPack) { mUiPack = uiPack; }