/// <summary> /// See Monobehaviour.Update. /// </summary> void Update() { if (m_AnimState == 1) { m_AnimDeltaTime = Time.realtimeSinceStartup - m_AnimStartTime; if (m_AnimDeltaTime <= m_AnimationDuration) { m_RectTransform.anchoredPosition = Tween.QuintOut(m_CurrentPos, new Vector2(m_MaxPosition, m_RectTransform.anchoredPosition.y), m_AnimDeltaTime, m_AnimationDuration); if (m_DarkenBackground) { m_BackgroundCanvasGroup.alpha = Tween.QuintOut(m_CurrentBackgroundAlpha, 1f, m_AnimDeltaTime, m_AnimationDuration); } m_ShadowCanvasGroup.alpha = Tween.QuintIn(m_CurrentShadowAlpha, 1f, m_AnimDeltaTime, m_AnimationDuration / 2f); } else { m_RectTransform.anchoredPosition = new Vector2(m_MaxPosition, m_RectTransform.anchoredPosition.y); if (m_DarkenBackground) { m_BackgroundCanvasGroup.alpha = 1f; } m_AnimState = 0; } } else if (m_AnimState == 2) { m_AnimDeltaTime = Time.realtimeSinceStartup - m_AnimStartTime; if (m_AnimDeltaTime <= m_AnimationDuration) { m_RectTransform.anchoredPosition = Tween.QuintOut(m_CurrentPos, new Vector2(m_MinPosition, m_RectTransform.anchoredPosition.y), m_AnimDeltaTime, m_AnimationDuration); if (m_DarkenBackground) { m_BackgroundCanvasGroup.alpha = Tween.QuintOut(m_CurrentBackgroundAlpha, 0f, m_AnimDeltaTime, m_AnimationDuration); } m_ShadowCanvasGroup.alpha = Tween.QuintIn(m_CurrentShadowAlpha, 0f, m_AnimDeltaTime, m_AnimationDuration); } else { m_RectTransform.anchoredPosition = new Vector2(m_MinPosition, m_RectTransform.anchoredPosition.y); if (m_DarkenBackground) { m_BackgroundCanvasGroup.alpha = 0f; } m_BackgroundGameObject.SetActive(false); m_ShadowGameObject.SetActive(false); m_PanelLayer.SetActive(false); m_AnimState = 0; } } m_RectTransform.anchoredPosition = new Vector2(Mathf.Clamp(m_RectTransform.anchoredPosition.x, m_MinPosition, m_MaxPosition), m_RectTransform.anchoredPosition.y); }
protected virtual void Update() { if (m_AnimState > 0) { if (m_AnimStartTime < 0) { m_AnimStartTime = Time.realtimeSinceStartup; } Kyub.Performance.SustainedPerformanceManager.Refresh(this); } if (m_AnimState == 1) { m_AnimDeltaTime = Time.realtimeSinceStartup - m_AnimStartTime; if (m_AnimDeltaTime <= m_AnimationDuration) { m_RectTransform.anchoredPosition = Tween.QuintOut(m_CurrentPos, new Vector2(m_MaxPosition, m_RectTransform.anchoredPosition.y), m_AnimDeltaTime, m_AnimationDuration); if (m_DarkenBackground) { m_BackgroundCanvasGroup.alpha = Tween.QuintOut(m_CurrentBackgroundAlpha, 1f, m_AnimDeltaTime, m_AnimationDuration); } m_ShadowCanvasGroup.alpha = Tween.QuintIn(m_CurrentShadowAlpha, 1f, m_AnimDeltaTime, m_AnimationDuration / 2f); } else { m_RectTransform.anchoredPosition = new Vector2(m_MaxPosition, m_RectTransform.anchoredPosition.y); if (m_DarkenBackground) { m_BackgroundCanvasGroup.alpha = 1f; } m_AnimState = 0; HandleOnOpenEnd(); } } else if (m_AnimState == 2) { m_AnimDeltaTime = Time.realtimeSinceStartup - m_AnimStartTime; if (m_AnimDeltaTime <= m_AnimationDuration) { m_RectTransform.anchoredPosition = Tween.QuintOut(m_CurrentPos, new Vector2(m_MinPosition, m_RectTransform.anchoredPosition.y), m_AnimDeltaTime, m_AnimationDuration); if (m_DarkenBackground) { m_BackgroundCanvasGroup.alpha = Tween.QuintOut(m_CurrentBackgroundAlpha, 0f, m_AnimDeltaTime, m_AnimationDuration); } m_ShadowCanvasGroup.alpha = Tween.QuintIn(m_CurrentShadowAlpha, 0f, m_AnimDeltaTime, m_AnimationDuration); } else { m_RectTransform.anchoredPosition = new Vector2(m_MinPosition, m_RectTransform.anchoredPosition.y); if (m_DarkenBackground) { m_BackgroundCanvasGroup.alpha = 0f; } m_BackgroundGameObject.SetActive(false); m_ShadowGameObject.SetActive(false); m_PanelLayer.SetActive(false); m_AnimState = 0; HandleOnCloseEnd(); } } m_RectTransform.anchoredPosition = new Vector2(Mathf.Clamp(m_RectTransform.anchoredPosition.x, Mathf.Min(m_MinPosition, m_MaxPosition), Mathf.Max(m_MinPosition, m_MaxPosition)), m_RectTransform.anchoredPosition.y); }