public static void ShowInstance(WindowObject instance, TransitionParameters parameters) { if (instance.objectState == ObjectState.Showing || instance.objectState == ObjectState.Shown) { parameters.RaiseCallback(); return; } instance.SetState(ObjectState.Showing); instance.OnShowBeginInternal(); instance.OnShowBegin(); WindowSystem.RaiseEvent(instance, WindowEvent.OnShowBegin); { if (instance.gameObject.activeSelf == false) { instance.gameObject.SetActive(true); } instance.SetVisible(); instance.SetResetState(); var animationComplete = false; var childsComplete = false; Coroutines.CallInSequence(() => { childsComplete = true; if (animationComplete == true) { parameters.RaiseCallback(); } }, instance.subObjects, (obj, cb) => { obj.Show(parameters.ReplaceCallback(cb)); }); var closureParameters = new ShowHideClosureParameters() { instance = instance, parameters = parameters, }; WindowObjectAnimation.Show(closureParameters, instance, parameters, (cParams) => { animationComplete = true; if (childsComplete == true) { cParams.parameters.RaiseCallback(); } }); } }
public static void HideInstance(WindowObject instance, TransitionParameters parameters) { if (instance.objectState <= ObjectState.Initializing) { Debug.LogWarning("Object is out of state: " + instance, instance); return; } if (instance.objectState == ObjectState.Hiding || instance.objectState == ObjectState.Hidden) { parameters.RaiseCallback(); return; } instance.SetState(ObjectState.Hiding); instance.OnHideBeginInternal(); instance.OnHideBegin(); WindowSystem.RaiseEvent(instance, WindowEvent.OnHideBegin); { var animationComplete = false; var childsComplete = false; Coroutines.CallInSequence(() => { childsComplete = true; if (animationComplete == true) { parameters.RaiseCallback(); } }, instance.subObjects, (obj, cb) => { obj.Hide(parameters.ReplaceCallback(cb)); }); var closureParameters = new ShowHideClosureParameters() { instance = instance, parameters = parameters, }; WindowObjectAnimation.Hide(closureParameters, instance, parameters, (cParams) => { animationComplete = true; if (childsComplete == true) { cParams.parameters.RaiseCallback(); } }); } }