public void Dispose() { mUICacher.Clear(); mCurrent = default; mPrevious = default; }
private void Awake() { IUIStack uiStack = gameObject.AddComponent <UIStack>(); uiStack.SetDependencies(_slider, permanentbottom); BasePopup.SetDependencies(uiStack); permanentbottom._uiStack = uiStack; Application.targetFrameRate = 45; EventBus.Instance.register <IRepositoryEvents>(gameObject); StorageManager instance = StorageManager.Instance; _repo = new Repository(); BaseModel.SetDependencies(_repo); _subjectController.SetDependencies(_repo); _subjectController2.SetDependencies(_repo); _favView.SetDependencies(_repo); _homeView.SetDependencies(_repo); _registerView.SetDependencies(_repo); _ratingView.SetDependencies(_repo); _loginView.SetDependencies(this); _settingsView.SetGuiRoot(this); UserManager.Instance.SetRepo(_repo); _repo.Initialize(); }
/// <summary> /// 关闭界面 /// </summary> /// <param name="stackName"></param> /// <param name="isDestroy"></param> public static void Close(this string stackName, bool isDestroy = false) { UIManager uis = Framework.Instance.GetUnit <UIManager>(Framework.UNIT_UI); IUIStack stack = uis.GetUI <IUIStack>(stackName); uis.Close(stackName, isDestroy); }
protected override void Start() { base.Start(); if (m_ApplyInitSelf) { IUIStack stack = CreateModular(); if (stack != default) { UIs.Open <UIStack>(stack.Name, () => { UIs.BindResourcesUIToStack(stack, gameObject, ActiveSelfControlHide); return(stack); }); } else { } ParamNotice <MonoBehaviour> notice = Pooling <ParamNotice <MonoBehaviour> > .From(); int noticeName = GetInstanceID(); noticeName.Broadcast(notice); notice.ToPool(); } else { } }
private bool RemoveStack(IUIStack target) { bool result = IsStackCurrent(target, true); if (result) { StackCurrent = mUIStacks.Pop(); } return(result); }
public bool IsStackCurrent(IUIStack target, bool isCheckValid = false) { IUIStack item = default; if (isCheckValid) { CheckStackCurrentValid(ref item); } else { item = (isCheckValid && (mUIStacks.Count > 0)) ? mUIStacks.Peek() : default; } return((item != default) && (target != default) && item.Name.Equals(target.Name)); }
public async Task <Widget> CreateInstance(IUIStack manager, string name, UIMessage message) { var loader = Her.Resolve <IViewLoader>(); var prefab = await loader.LoadView(name); if (prefab == null) { throw new Exception($"Load view: {name} failed"); } var instance = Object.Instantiate(prefab).GetComponent <Widget>(); instance.SetManagerInfo(name, manager, message); return(instance); }
public void Close <T>(string name) where T : IUIStack, new() { bool isCurrentStack; T result = mUICacher.RemoveAndCheckUICached <T>(name, out isCurrentStack); if (isCurrentStack) { mPrevious = mCurrent; mCurrent = mUICacher.StackCurrent; mCurrent.Renew(); } if (result != default) { result.Exit(); } }
private void CheckStackCurrentValid(ref IUIStack item) { while (mUIStacks.Count > 0) { item = mUIStacks.Peek(); if (item.IsExited || item.IsStackAdvanced) { if (item.IsStackAdvanced) { item.ResetAdvance(); } mUIStacks.Pop(); item = default; } else { break; } } }
public T Open <T>(string name) where T : IUIStack, new() { T result = mUICacher.CreateOrGetUICache <T>(name); if (!result.IsExited) { if (mPrevious != default) { mPrevious.Interrupt(); } mPrevious = mCurrent; mCurrent = mUICacher.StackCurrent; if (mCurrent.IsStackAdvanced) { mCurrent.Renew(); } else { mCurrent.Enter(); } } return(result); }
public static void SetDependencies(IUIStack stack) { _uiStack = stack; }
private void AddStack(IUIStack target) { StackCurrent = target; mUIStacks.Push(target); }
public virtual void SetManagerInfo(string path, IUIStack manager, UIMessage message) { Path = path; IuiStack = manager; Message = message; }