public void MakeThisScreenActive(ScreenMonoBehaviour screen) { _activeScreen = screen; //call on start show screen OnStartShowScreen(_activeScreen); //move the active screen to camera LeanTween.moveLocalX(_activeScreen.gameObject, 0f, TIME_OF_TRANSITION); //call on active screen shown complete LeanTween.delayedCall(1f, (s) => OnScreenShown(_activeScreen)); }
private void OnScreenShown(ScreenMonoBehaviour screen) { (screen as IScreenMonoBehaviour).OnScreenShown(); float x = 0; foreach (var item in screens) { if (item != _activeScreen) { //call on hide starts OnStartHideScreen(item); x += item.GetComponent <RectTransform>().rect.width + SPACE_BETWEEN_SCREENS; RectTransform itemTransform = item.GetComponent <RectTransform>(); itemTransform.localPosition = new Vector3(x, itemTransform.localPosition.y, itemTransform.localPosition.z); //call on hide ends OnScreenHide(item); } } }
private void OnStartHideScreen(ScreenMonoBehaviour screen) { (screen as IScreenMonoBehaviour).OnStartHideScreen(); }
private void OnScreenHide(ScreenMonoBehaviour screen) { (screen as IScreenMonoBehaviour).OnScreenHide(); }