/// <summary> /// 打开UI /// </summary> /// <param name="UIName">UI名</param> /// <param name="callback">动画播放完毕回调</param> /// <param name="objs">回调传参</param>` /// <returns>返回打开的UI</returns> public static UIWindowBase OpenUIWindow(string UIName, UICallBack callback = null, params object[] objs) { UIWindowBase UIbase = GetHideUI(UIName); if (UIbase == null) { UIbase = CreateUIWindow(UIName); } RemoveHideUI(UIbase); AddUI(UIbase); UIStackManager.OnUIOpen(UIbase); UILayerManager.SetLayer(UIbase); //设置层级 UIbase.windowStatus = UIWindowBase.WindowStatus.OpenAnim; UISystemEvent.Dispatch(UIbase, UIEvent.OnOpen); //派发OnOpen事件 try { UIbase.OnOpen(); } catch (Exception e) { Debug.LogError(UIName + " OnOpen Exception: " + e.ToString()); } UISystemEvent.Dispatch(UIbase, UIEvent.OnOpened); //派发OnOpened事件 UIAnimManager.StartEnterAnim(UIbase, callback, objs); //播放动画 return(UIbase); }
public static void Init() { if (!isInit) { isInit = true; GameObject instance = GameObject.Find("UIManager"); if (instance == null) { instance = GameObjectManager.CreateGameObject("UIManager"); } UIManagerGo = instance; s_UILayerManager = instance.GetComponent <UILayerManager>(); s_UIAnimManager = instance.GetComponent <UIAnimManager>(); s_UIStackManager = instance.GetComponent <UIStackManager>(); s_EventSystem = instance.GetComponentInChildren <EventSystem>(); if (Application.isPlaying) { DontDestroyOnLoad(instance); } } }
static int set_UIStackManager(IntPtr L) { try { UIStackManager arg0 = (UIStackManager)ToLua.CheckUnityObject(L, 2, typeof(UIStackManager)); UIManager.UIStackManager = arg0; return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static void CloseUIWindowCallBack(UIWindowBase UI, params object[] objs) { UI.windowStatus = UIWindowBase.WindowStatus.Close; UISystemEvent.Dispatch(UI, UIEvent.OnClose); //派发OnClose事件 try { UI.OnClose(); } catch (Exception e) { Debug.LogError(UI.UIName + " OnClose Exception: " + e.ToString()); } UIStackManager.OnUIClose(UI); AddHideUI(UI); }
static public Dictionary <string, List <UIWindowBase> > s_hideUIs = new Dictionary <string, List <UIWindowBase> >(); //隐藏的UI #region 初始化 public static void Init() { GameObject instance = GameObject.Find("UIManager"); if (instance == null) { instance = GameObjectManager.CreateGameObject("UIManager"); } s_UIManagerGo = instance; s_UILayerManager = instance.GetComponent <UILayerManager>(); s_UIAnimManager = instance.GetComponent <UIAnimManager>(); s_UIStackManager = instance.GetComponent <UIStackManager>(); s_UIcamera = instance.GetComponentInChildren <Camera>(); DontDestroyOnLoad(instance); }
public static void CloseLastUI(UIType uiType = UIType.Normal) { UIStackManager.CloseLastUIWindow(uiType); }
override protected void OnDisable() { base.OnDisable(); UIStackManager.PopUiStack(CacheGameObject.GetInstanceID()); }
protected void OnEnable() { UIStackManager.PushUiStack(transform, CloseCallback); AddHistory(); }
protected IUIStack BuildUIStackInstance(IDependencyContainer container) { return(UIStackManager.BuildHierarchy(uiManagerSettings)); }