IEnumerator Coroutine_Hide <CLASS_UIOBJECT>(UICommandHandle <CLASS_UIOBJECT> sUICommandHandle, CLASS_UIOBJECT pUIObject) where CLASS_UIOBJECT : IUIObject { if (_setPlayHiding.Contains(pUIObject)) { yield break; } _setPlayHiding.Add(pUIObject); GameObject pObject = pUIObject.gameObject; if (pObject != null && pObject.activeSelf == false) { pObject.SetActive(true); } yield return(pUIObject.OnHideCoroutine()); sUICommandHandle.Event_OnHide(true); if (pObject.Equals(null) == false) { pObject.SetActive(false); } _setPlayHiding.Remove(pUIObject); }
public static void ReturnInstance(UICommandHandle <TUIObject> pHandle) { pHandle.Set_UIState(EUIObjectState.Destroyed); if (pHandle.pUIObject != null) { g_mapHandle.Remove(pHandle.pUIObject); } g_pPool.DoPush(pHandle); }
public override UICommandHandle <CLASS_UIOBJECT> IUIManager_Hide <CLASS_UIOBJECT>(CLASS_UIOBJECT pUIObject, bool bPlayAnimation) { if (this.IsNull()) { return(null); } UICommandHandle <CLASS_UIOBJECT> sUICommandHandle = UICommandHandle <CLASS_UIOBJECT> .GetInstance(pUIObject); sUICommandHandle.Set_UIObject(pUIObject); StartCoroutine(Coroutine_Hide(sUICommandHandle, pUIObject)); return(sUICommandHandle); }
public static UICommandHandle <T> Set_OnBeforeShow <T>(this UICommandHandle <T> pHandle, System.Action <T> OnBeforeShow) where T : IUIObject { if (pHandle.bIsExecute_BeforeShow) { OnBeforeShow(pHandle.pUIObject); } else { pHandle.OnBeforeShow += OnBeforeShow; } return(pHandle); }
public UICommandHandle <T> Cast <T>() where T : class, IUIObject { T pObjectCast = pUIObject as T; if (pUIObject != null && pObjectCast == null) { Debug.LogError($"Type : {typeof(T).Name} - Casting Fail Name : {pUIObject?.gameObject.name}", pUIObject?.gameObject); } UICommandHandle <T> pCast = UICommandHandle <T> .GetInstance(pObjectCast); pCast.bIsExecute_BeforeShow = this.bIsExecute_BeforeShow; pCast.bIsFinish_Animation = this.bIsFinish_Animation; ReturnInstance(this); return(pCast); }
/* protected - [abstract & virtual] */ // ========================================================================== // #region Private IEnumerator Coroutine_Show <CLASS_UIOBJECT>(UICommandHandle <CLASS_UIOBJECT> sUICommandHandle, CLASS_UIOBJECT pUIObject) where CLASS_UIOBJECT : IUIObject { // hiding 중인 경우는 Show Coroutine을 켜지않습니다. // 하이딩할 때 Active가 꺼져있을 때 True로 인해 들어올 수 있음 if (_setPlayHiding.Contains(pUIObject)) { yield break; } sUICommandHandle.Event_OnBeforeShow(); GameObject pObject = pUIObject.gameObject; if (pObject != null && pObject.activeSelf == false) { pObject.SetActive(true); } sUICommandHandle.Event_OnShow_BeforeAnimation(); yield return(pUIObject.OnShowCoroutine()); sUICommandHandle.Event_OnShow_AfterAnimation(); }
public static UICommandHandle <T> GetHandle <T>(this T pCanvas) where T : IUIObject { return(UICommandHandle <T> .GetInstance_Used_OrNull(pCanvas)); }
public static UICommandHandle <T> Set_OnHide <T>(this UICommandHandle <T> pHandle, System.Action <T> OnHide) where T : IUIObject { pHandle.OnHide += OnHide; return(pHandle); }
public static UICommandHandle <T> Set_OnShow_AfterAnimation <T>(this UICommandHandle <T> pHandle, System.Action <T> OnShow) where T : IUIObject { pHandle.OnShow_AfterAnimation += OnShow; return(pHandle); }
public static UICommandHandle <T> Set_OnCheck_IsShow <T>(this UICommandHandle <T> pHandle, System.Func <System.Action <bool>, IEnumerator> OnChecking_IsShow) where T : IUIObject { pHandle.OnChecking_IsShow = OnChecking_IsShow; return(pHandle); }