public virtual void StartTransition( MenuDefinitions.TransitionTypes eType, MenuDefinitions.Directions eDirection, float fDuration, bool bForwards) { UITweener tween = null; this.gameObject.transform.localScale = new Vector3(1, 1, 1); this.gameObject.transform.localPosition = DirectionToPosition(MenuDefinitions.Directions.Center, this.gameObject.transform.localPosition.z); switch (eType) { case MenuDefinitions.TransitionTypes.Fade: tween = TweenAlpha.Begin(this.gameObject, fDuration, 1.0f); break; case MenuDefinitions.TransitionTypes.Scale: { Vector3 targetScale = this.gameObject.transform.localScale; if( bForwards == true ) { this.gameObject.transform.localScale = new Vector3(0.00001f, 0.00001f, 0.00001f); targetScale = new Vector3(1,1,1); } else { this.gameObject.transform.localScale = new Vector3(1, 1, 1); targetScale = new Vector3(0.00001f, 0.00001f, 0.00001f); } tween = TweenScale.Begin(this.gameObject, fDuration, targetScale); } break; case MenuDefinitions.TransitionTypes.Spin: tween = TweenRotation.Begin(this.gameObject, fDuration, Quaternion.FromToRotation(new Vector3(1, -1, 1), new Vector3(0,0,0) ) ); break; case MenuDefinitions.TransitionTypes.Translate: { Vector3 targetPosition = this.gameObject.transform.localPosition; if( bForwards == true ) { this.gameObject.transform.localPosition = DirectionToPosition(eDirection, targetPosition.z); targetPosition = DirectionToPosition(MenuDefinitions.Directions.Center, targetPosition.z); } else { this.gameObject.transform.localPosition = DirectionToPosition(MenuDefinitions.Directions.Center, targetPosition.z); targetPosition = DirectionToPosition(eDirection, targetPosition.z); } tween = TweenPosition.Begin(this.gameObject, fDuration, targetPosition); } break; default: break; } if( tween != null) { tween.style = UITweener.Style.Once; tween.method = UITweener.Method.EaseInOut; tween.onFinished = TransitionEndInternal; } }
public void OpenMenu( MenuDefinitions.Menus menu ) { if( m_pCurrentMenu != null && m_pCurrentMenu.Menu == menu) return; MenuBase result = null; if( m_pMenus.TryGetValue((int)menu, out result) == true) { SetInput(false); nNextMenu = (int)menu; if( m_pCurrentMenu != null ) m_pCurrentMenu.SetState(false, TransitionEnd); else TransitionEnd(); } }
public void OpenMenuWithHeirarchy(MenuDefinitions.Menus[] menuList) { if( m_pCurrentMenu != null) m_pCurrentMenu.SetState(false); m_pCurrentMenu = null; m_pMenuList.Clear(); for (int i = 0; i < menuList.Length; i++) { m_pMenuList.Push( (int)menuList[i] ); } OpenMenu( (MenuDefinitions.Menus)m_pMenuList.Peek() ); }
protected virtual Vector3 DirectionToPosition(MenuDefinitions.Directions eDirection, float nZ) { Vector3 result = new Vector3(0,0,nZ); switch (eDirection) { case MenuDefinitions.Directions.Center: break; case MenuDefinitions.Directions.Down: result = new Vector3(0, -1000, nZ); break; case MenuDefinitions.Directions.Up: result = new Vector3(0, 1000, nZ); break; case MenuDefinitions.Directions.Right: result = new Vector3(2000, 0, nZ); break; case MenuDefinitions.Directions.Left: result = new Vector3(-2000, 0, nZ); break; default: break; } return result; }