public void TransitionOut() { if (!isCurrentlySelected) { return; } Deactivate(this); previousScreens.Push(this); currentScreen = null; }
private static void Activate(TransitionableScreen screen) { var canvasGroup = screen.canvasGroup ?? screen.GetComponent <CanvasGroup>(); canvasGroup.interactable = true; canvasGroup.blocksRaycasts = true; screen.gameObject.SetActive(true); screen.OnTransitionIn(); screen.onTransitionIn.Invoke(); }
private static void Activate(TransitionableScreen screen) { screen.gameObject.SetActive(true); var canvasGroup = screen.canvasGroup; if (canvasGroup) { canvasGroup.interactable = true; canvasGroup.blocksRaycasts = true; } screen.OnTransitionIn(); }
public static void TransitionToPrevious() { if (previousScreens.Count == 0) { return; } if (currentScreen != null) { Deactivate(currentScreen); } currentScreen = previousScreens.Pop(); Activate(currentScreen); }
private static void Deactivate(TransitionableScreen screen) { var canvasGroup = screen.canvasGroup ?? screen.GetComponent <CanvasGroup>(); canvasGroup.interactable = false; canvasGroup.blocksRaycasts = false; if (screen.deactivateOnTransitionOut) { screen.gameObject.SetActive(false); } screen.OnTransitionOut(); screen.onTransitionOut.Invoke(); }
public void TransitionIn() { if (isCurrentlySelected) { return; } if (currentScreen) { Deactivate(currentScreen); previousScreens.Push(currentScreen); } currentScreen = this; Activate(this); }
private static void Deactivate(TransitionableScreen screen) { var canvasGroup = screen.canvasGroup; if (canvasGroup) { canvasGroup.interactable = false; canvasGroup.blocksRaycasts = false; } if (screen.deactivateOnTransitionOut) { screen.gameObject.SetActive(false); } screen.OnTransitionOut(); }
void Start() { targetScreen = targetScreen ? targetScreen : GetComponent <TransitionableScreen>(); }