public void GoToPreviousScreen() { if (Screens == null) { Debug.Log("Screens not assigned"); return; } if (PreviousScreens == null || PreviousScreens.Count == 0) { Debug.Log("No previous screens to go back to"); GlobalBackButton.gameObject.SetActive(false); return; } Transform previousScreen = PreviousScreens[PreviousScreens.Count - 1]; if (previousScreen == null) { Debug.Log("Previous screen is null"); return; } if (ScreenTransitionDuration > 0f) { if (BlockInputsDuringTransitions) { InputBlockerActive(true); } Screens.DOComplete(); DG.Tweening.Core.TweenerCore <Vector3, Vector3, DG.Tweening.Plugins.Options.VectorOptions> tweenerCore = Screens.DOMove(GetMoveDelta(CurrentScreen.transform, previousScreen.transform), ScreenTransitionDuration); if (BlockInputsDuringTransitions) { tweenerCore.OnComplete(() => InputBlockerActive(false)); } } else { Screens.position = GetMoveDelta(CurrentScreen.transform, previousScreen.transform); } CurrentScreen = previousScreen; PreviousScreens.Remove(previousScreen); if (PreviousScreens.Count == 0) { GlobalBackButton.gameObject.SetActive(false); } }
static StackObject *OnStart_0(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 2); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); DG.Tweening.TweenCallback @action = (DG.Tweening.TweenCallback) typeof(DG.Tweening.TweenCallback).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 2); DG.Tweening.Core.TweenerCore <UnityEngine.Vector2, UnityEngine.Vector2, DG.Tweening.Plugins.Options.VectorOptions> @t = (DG.Tweening.Core.TweenerCore <UnityEngine.Vector2, UnityEngine.Vector2, DG.Tweening.Plugins.Options.VectorOptions>) typeof(DG.Tweening.Core.TweenerCore <UnityEngine.Vector2, UnityEngine.Vector2, DG.Tweening.Plugins.Options.VectorOptions>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); var result_of_this_method = DG.Tweening.TweenSettingsExtensions.OnStart <DG.Tweening.Core.TweenerCore <UnityEngine.Vector2, UnityEngine.Vector2, DG.Tweening.Plugins.Options.VectorOptions> >(@t, @action); return(ILIntepreter.PushObject(__ret, __mStack, result_of_this_method)); }
public void GoToScreen(Transform newScreen) { if (Screens == null) { Debug.Log("Screens not assigned"); return; } if (newScreen == null) { Debug.LogError("Screen not assigned"); return; } if (ScreenTransitionDuration > 0f) { if (BlockInputsDuringTransitions) { InputBlockerActive(true); } Screens.DOComplete(); DG.Tweening.Core.TweenerCore <Vector3, Vector3, DG.Tweening.Plugins.Options.VectorOptions> tweenerCore = Screens.DOMove(GetMoveDelta(CurrentScreen.transform, newScreen), ScreenTransitionDuration); if (BlockInputsDuringTransitions) { tweenerCore.OnComplete(() => InputBlockerActive(false)); } } else { Screens.position = GetMoveDelta(CurrentScreen.transform, newScreen); } PreviousScreens.Add(CurrentScreen); CurrentScreen = newScreen; if (!GlobalBackButton.gameObject.activeInHierarchy) { GlobalBackButton.gameObject.SetActive(true); } }