/// <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 override void AnimOff() { base.AnimOff(); if (m_ChangeIconColor && m_ItemIcon != null) { m_ItemIcon.color = Tween.QuintOut(m_CurrentColor, m_OffColor, m_AnimDeltaTime, m_AnimationDuration); } }
/// <summary> /// Begins animating the toggle to the 'off' visual state. /// </summary> public override void AnimOff() { base.AnimOff(); switchImage.color = Tween.QuintOut(m_CurrentColor, m_OffColor, m_AnimDeltaTime, m_AnimationDuration); backImage.color = Tween.QuintOut(m_CurrentBackColor, backOffColor, m_AnimDeltaTime, m_AnimationDuration); switchRectTransform.anchoredPosition = Tween.SeptSoftOut(new Vector2(m_CurrentSwitchPosition, 0f), new Vector2(-8f, 0f), m_AnimDeltaTime, m_AnimationDuration); }
public override void AnimOff() { base.AnimOff(); checkImage.color = Tween.QuintOut(m_CurrentColor, offColor, m_AnimDeltaTime, animationDuration); frameImage.color = Tween.QuintOut(m_CurrentFrameColor, offColor, m_AnimDeltaTime, animationDuration); float tempSize = Tween.QuintOut(m_CurrentCheckSize, 0, m_AnimDeltaTime, animationDuration); checkRectTransform.sizeDelta = new Vector2(tempSize, tempSize); }
public override void AnimOn() { base.AnimOn(); m_DotImage.color = Tween.QuintOut(m_CurrentColor, m_OnColor, m_AnimDeltaTime, m_AnimationDuration); m_RingImage.color = m_DotImage.color; float tempSize = Tween.QuintOut(m_CurrentDotSize, 24, m_AnimDeltaTime, m_AnimationDuration); m_DotImage.rectTransform.sizeDelta = new Vector2(tempSize, tempSize); }
protected override void AnimOff() { base.AnimOff(); if (switchImage) { switchImage.color = Tween.QuintOut(m_CurrentColor, m_OffColor, m_AnimDeltaTime, m_AnimationDuration); } if (backImage) { backImage.color = Tween.QuintOut(m_CurrentBackColor, backOffColor, m_AnimDeltaTime, m_AnimationDuration); } if (slideSwitch) { switchRectTransform.anchoredPosition = Tween.SeptSoftOut(switchRectTransform.anchoredPosition, GetSlideAnchoredPosition(false), m_AnimDeltaTime, m_AnimationDuration); } }
protected void ApplyCanvasGroupAlpha(bool animate) { if (Application.isPlaying) { var targetAlpha = (m_TabView != null && !m_ChangeIconColor && !m_ChangeGraphicColor && !isOn) ? (interactable ? 0.5f : 0.15f) : (interactable ? 1f : 0.5f); if (animate) { canvasGroup.alpha = Tween.QuintOut(canvasGroup.alpha, targetAlpha, m_AnimDeltaTime, m_AnimationDuration); } else { canvasGroup.alpha = targetAlpha; } } else { canvasGroup.alpha = interactable ? 1f : 0.5f; } }
protected override void AnimOff() { base.AnimOff(); if (checkImage != null) { checkImage.color = Tween.QuintOut(m_CurrentColor, offColor, m_AnimDeltaTime, m_AnimationDuration); } if (frameImage != null) { frameImage.color = Tween.QuintOut(m_CurrentFrameColor, offColor, m_AnimDeltaTime, m_AnimationDuration); } float tempSize = Tween.QuintOut(m_CurrentCheckSize, 0, m_AnimDeltaTime, m_AnimationDuration); if (checkRectTransform != null) { checkRectTransform.sizeDelta = new Vector2(tempSize, tempSize); } }
/// <summary> /// Begins animating the toggle to the 'on' visual state. /// </summary> public override void AnimOn() { base.AnimOn(); // SS_BEGIN if (checkImage != null) { checkImage.color = Tween.QuintOut(m_CurrentColor, onColor, m_AnimDeltaTime, animationDuration); } if (frameImage != null) { frameImage.color = Tween.QuintOut(m_CurrentFrameColor, onColor, m_AnimDeltaTime, animationDuration); } float tempSize = Tween.QuintOut(m_CurrentCheckSize, 24, m_AnimDeltaTime, animationDuration); if (checkRectTransform != null) { checkRectTransform.sizeDelta = new Vector2(tempSize, tempSize); } // SS_END }
/// <summary> /// See MonoBehaviour.Update. /// </summary> void Update() { m_AnimDeltaTime = Time.realtimeSinceStartup - m_AnimStartTime; if (m_State == 1) { if (m_AnimDeltaTime <= m_AnimationDuration) { canvasGroup.alpha = Tween.QuintOut(m_CurrentAlpha, rippleData.EndAlpha, m_AnimDeltaTime, m_AnimationDuration); float size = Tween.QuintOut(m_CurrentSize, CalculateSize(), m_AnimDeltaTime, m_AnimationDuration); rectTransform.sizeDelta = new Vector2(size, size); SubmitSizeForSoftening(); if (rippleData.MoveTowardCenter) { Vector3 parentPosition = m_RippleParent.GetPositionRegardlessOfPivot(); rectTransform.position = Tween.QuintOut(m_CurrentPosition, new Vector3(parentPosition.x, parentPosition.y, m_RippleParent.position.z), m_AnimDeltaTime, m_AnimationDuration); } } else { if (m_Oscillate) { m_State = 3; m_AnimStartTime = Time.realtimeSinceStartup; m_CurrentSize = rectTransform.rect.width; m_CurrentSize *= 0.95f; } else { m_State = 0; } } } else if (m_State == 2) { if (m_AnimDeltaTime <= m_AnimationDuration * 2f) { canvasGroup.alpha = Tween.QuintOut(m_CurrentAlpha, 0f, m_AnimDeltaTime, m_AnimationDuration * 2f); float size = Tween.QuintOut(m_CurrentSize, CalculateSize(), m_AnimDeltaTime, m_AnimationDuration); rectTransform.sizeDelta = new Vector2(size, size); SubmitSizeForSoftening(); if (rippleData.MoveTowardCenter) { Vector3 parentPosition = m_RippleParent.GetPositionRegardlessOfPivot(); rectTransform.position = Tween.QuintOut(m_CurrentPosition, new Vector3(parentPosition.x, parentPosition.y, m_RippleParent.position.z), m_AnimDeltaTime, m_AnimationDuration); } } else { m_State = 0; m_RippleCreator.OnDestroyRipple(); RippleManager.instance.ReleaseRipple(this); } } else if (m_State == 3) { float size = Tween.Sin(m_CurrentSize, m_CurrentSize * 0.05f, m_AnimDeltaTime * 4); rectTransform.sizeDelta = new Vector2(size, size); SubmitSizeForSoftening(); } }
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); }
public void Hide() { m_Shadow = m_PanelShadowCanvasGroup != null; if (m_FinalExpandMode != ExpandMode.Rectangular) { m_MaskRect = rippleMask; m_MaskRect.SetParentAndScale(m_PanelRootRectTransform.parent, Vector3.one); RippleData rippleData = new RippleData { RippleParent = m_MaskRect, Shadow = m_RippleHasShadow }; m_Ripple = RippleManager.instance.GetRipple(); m_Ripple.Setup(rippleData, m_MaskRect.position, null); m_Ripple.rectTransform.localScale = Vector3.one; m_Ripple.rectTransform.sizeDelta = m_BaseRectTransform.sizeDelta; m_Ripple.color = Color.white; m_Ripple.canvasGroup.alpha = 1f; m_Ripple.SubmitSizeForSoftening(); m_CircleExpandedSize = Mathf.Sqrt(Mathf.Pow(Tween.QuintOut(0f, m_ExpandedSize.x, 1f, 0.5f), 2) + Mathf.Pow(Tween.QuintOut(0f, m_ExpandedSize.y, 1f, 0.5f), 2)); } if (m_FinalExpandMode != ExpandMode.Radial) { m_WidthDuration = 1f; m_HeightDuration = 1f; if (m_ExpandedSize.x > m_ExpandedSize.y) { m_HeightDuration = (2 * (m_ExpandedSize.y / m_ExpandedSize.x) + 1f) / 3f; } else if (m_ExpandedSize.x < m_ExpandedSize.y) { m_WidthDuration = (2 * (m_ExpandedSize.x / m_ExpandedSize.y) + 1f) / 3f; } } if (m_FinalExpandMode == ExpandMode.Radial) { m_PanelRootRectTransform.SetPositionRegardlessOfPivot(expandedPosition); m_PanelRootRectTransform.sizeDelta = expandedSize; TweenManager.TweenFloat(f => { m_MaskRect.sizeDelta = m_PanelRootRectTransform.sizeDelta; m_MaskRect.position = m_PanelRootRectTransform.GetPositionRegardlessOfPivot(); m_Ripple.rectTransform.sizeDelta = Tween.QuintSoftOut(new Vector2(m_CircleExpandedSize, m_CircleExpandedSize), m_BaseRectTransform.sizeDelta, f, 1f); m_Ripple.rectTransform.position = Tween.QuintSoftOut(m_PanelRootRectTransform.GetPositionRegardlessOfPivot(), m_BaseRectTransform.GetPositionRegardlessOfPivot(), f, 1f); m_Ripple.SubmitSizeForSoftening(); if (m_Shadow) { m_PanelShadowCanvasGroup.alpha = Tween.QuintOut(1f, 0f, f, 0.5f); } m_PanelContentCanvasGroup.alpha = Tween.QuintOut(1f, 0f, f, 0.5f); m_Ripple.color = m_Ripple.color.WithAlpha(Tween.QuintSoftOut(1f, 0f, f - 0.8f, 0.2f)); }, 0f, 1f, m_AnimationDuration, tweenType: Tween.TweenType.Linear); TweenManager.TimedCallback(m_AnimationDuration, m_Ripple.InstantContract); TweenManager.TimedCallback(m_AnimationDuration * 0.5f, () => m_BaseRectTransform.gameObject.SetActive(true)); } else if (m_FinalExpandMode == ExpandMode.Rectangular) { TweenManager.TweenFloat(f => { if (m_ExpandedPosition.y > m_BaseRectTransform.position.y) { m_PanelRootRectTransform.sizeDelta = new Vector2( Tween.QuintInOut(expandedSize.x, m_BaseRectTransform.sizeDelta.x, f, m_WidthDuration), Tween.QuintSoftOut(expandedSize.y, m_BaseRectTransform.sizeDelta.y, f, m_HeightDuration)); m_PanelRootRectTransform.SetPositionRegardlessOfPivot(new Vector2( Tween.QuintInOut(expandedPosition.x, m_BaseRectTransform.GetPositionRegardlessOfPivot().x, f, m_WidthDuration), Tween.QuintSoftOut(expandedPosition.y, m_BaseRectTransform.GetPositionRegardlessOfPivot().y, f, m_HeightDuration))); } else { m_PanelRootRectTransform.sizeDelta = new Vector2( Tween.QuintSoftOut(expandedSize.x, m_BaseRectTransform.sizeDelta.x, f, m_WidthDuration), Tween.QuintInOut(expandedSize.y, m_BaseRectTransform.sizeDelta.y, f, m_HeightDuration)); m_PanelRootRectTransform.SetPositionRegardlessOfPivot(new Vector2( Tween.QuintSoftOut(expandedPosition.x, m_BaseRectTransform.GetPositionRegardlessOfPivot().x, f, m_WidthDuration), Tween.QuintInOut(expandedPosition.y, m_BaseRectTransform.GetPositionRegardlessOfPivot().y, f, m_HeightDuration))); } if (m_Shadow) { m_PanelShadowCanvasGroup.alpha = Tween.QuintOut(1f, 0f, f - 0.75f, 0.25f); } m_PanelContentCanvasGroup.alpha = Tween.QuintSoftOut(1f, 0f, f, 0.25f); }, 0f, 1f, m_AnimationDuration, tweenType: Tween.TweenType.Linear); TweenManager.TimedCallback(m_AnimationDuration * 0.7f, () => m_BaseRectTransform.gameObject.SetActive(true)); } else if (m_FinalExpandMode == ExpandMode.Hybrid) { Vector2 endPos = m_BaseRectTransform.GetPositionRegardlessOfPivot(); TweenManager.TweenFloat(f => { if (m_ExpandedPosition.y > m_BaseRectTransform.position.y) { m_PanelRootRectTransform.sizeDelta = new Vector2( Tween.QuintInOut(expandedSize.x, m_BaseRectTransform.sizeDelta.x, f, m_WidthDuration), Tween.QuintSoftOut(expandedSize.y, m_BaseRectTransform.sizeDelta.y, f, m_HeightDuration)); m_PanelRootRectTransform.SetPositionRegardlessOfPivot(new Vector2( Tween.QuintInOut(expandedPosition.x, endPos.x, f, m_WidthDuration), Tween.QuintSoftOut(expandedPosition.y, endPos.y, f, m_HeightDuration))); } else { m_PanelRootRectTransform.sizeDelta = new Vector2( Tween.QuintSoftOut(expandedSize.x, m_BaseRectTransform.sizeDelta.x, f, m_WidthDuration), Tween.QuintInOut(expandedSize.y, m_BaseRectTransform.sizeDelta.y, f, m_HeightDuration)); m_PanelRootRectTransform.SetPositionRegardlessOfPivot(new Vector2( Tween.QuintSoftOut(expandedPosition.x, endPos.x, f, m_WidthDuration), Tween.QuintInOut(expandedPosition.y, endPos.y, f, m_HeightDuration))); } m_MaskRect.sizeDelta = m_PanelRootRectTransform.sizeDelta; m_MaskRect.position = m_PanelRootRectTransform.GetPositionRegardlessOfPivot(); m_Ripple.rectTransform.sizeDelta = Tween.QuintSoftOut(new Vector2(m_CircleExpandedSize, m_CircleExpandedSize), m_BaseRectTransform.sizeDelta, f, Mathf.Min(m_WidthDuration, m_HeightDuration)); m_Ripple.rectTransform.anchoredPosition = Vector2.zero; m_Ripple.SubmitSizeForSoftening(); if (m_Shadow) { m_PanelShadowCanvasGroup.alpha = Tween.QuintOut(1f, 0f, f, 0.15f); } m_PanelContentCanvasGroup.alpha = Tween.QuintOut(1f, 0f, f, 0.15f); m_Ripple.color = m_Ripple.color.WithAlpha(Tween.QuintSoftOut(1f, 0f, f - 0.8f, 0.2f)); }, 0f, 1f, m_AnimationDuration, tweenType: Tween.TweenType.Linear); TweenManager.TimedCallback(m_AnimationDuration, m_Ripple.InstantContract); TweenManager.TimedCallback(m_AnimationDuration * 0.8f, () => m_BaseRectTransform.gameObject.SetActive(true)); } if (m_DarkenBackground) { TweenManager.TweenColor(color => m_BackgroundImage.color = color, m_BackgroundImage.color, Color.clear, m_AnimationDuration * 0.5f, m_AnimationDuration * 0.5f, () => m_ClickableBackground.gameObject.SetActive(false), tweenType: Tween.TweenType.EaseInOutCubed); } TweenManager.TimedCallback(m_AnimationDuration, () => m_PanelRootRectTransform.gameObject.SetActive(false)); }
public void Show() { m_PanelRootRectTransform.gameObject.SetActive(true); if (!m_HasExpandedInfo) { if (m_AutoExpandedPosition) { m_ExpandedPosition = m_PanelRootRectTransform.GetPositionRegardlessOfPivot(); } if (m_AutoExpandedSize) { m_ExpandedSize = m_PanelRootRectTransform.sizeDelta; } CalculateExpandMode(); m_HasExpandedInfo = true; } if (m_DarkenBackground || m_ClickBackgroundToClose) { if (m_ClickableBackground == null) { m_ClickableBackground = PrefabManager.InstantiateGameObject(PrefabManager.ResourcePrefabs.clickableBackground, m_PanelRootRectTransform.parent).GetAddComponent <RectTransform>(); m_ClickableBackground.SetSiblingIndex(m_PanelRootRectTransform.GetSiblingIndex()); m_BackgroundImage = m_ClickableBackground.gameObject.GetComponent <Image>(); m_BackgroundTrigger = m_ClickableBackground.gameObject.GetComponent <EventTrigger>(); EventTrigger.Entry entry = new EventTrigger.Entry(); entry.callback.AddListener(baseEventData => OnBackgroundClick()); m_BackgroundTrigger.triggers.Add(entry); } m_ClickableBackground.sizeDelta = new Vector2(10000, 10000); m_ClickableBackground.anchoredPosition = m_ExpandedPosition; m_BackgroundImage.color = Color.clear; m_ClickableBackground.gameObject.SetActive(true); } m_PanelContentCanvasGroup.alpha = 0f; if (m_RippleHasShadow && m_PanelShadowCanvasGroup != null) { m_PanelShadowCanvasGroup.alpha = 0f; } if (m_FinalExpandMode != ExpandMode.Rectangular) { m_MaskRect = rippleMask; m_MaskRect.SetParentAndScale(m_PanelRootRectTransform.parent, Vector3.one); RippleData rippleData = new RippleData { RippleParent = m_MaskRect, Shadow = m_RippleHasShadow }; m_Ripple = RippleManager.instance.GetRipple(); m_Ripple.Setup(rippleData, m_MaskRect.position, null); m_Ripple.rectTransform.localScale = Vector3.one; m_Ripple.rectTransform.sizeDelta = m_BaseRectTransform.sizeDelta; m_Ripple.color = Color.white; m_Ripple.canvasGroup.alpha = 1f; m_Ripple.SubmitSizeForSoftening(); m_CircleExpandedSize = Mathf.Sqrt(Mathf.Pow(Tween.QuintOut(0f, m_ExpandedSize.x, 1f, 0.5f), 2) + Mathf.Pow(Tween.QuintOut(0f, m_ExpandedSize.y, 1f, 0.5f), 2)); } if (m_FinalExpandMode != ExpandMode.Radial) { m_WidthDuration = 1f; m_HeightDuration = 1f; if (m_ExpandedSize.x > m_ExpandedSize.y) { m_HeightDuration = (2 * (m_ExpandedSize.y / m_ExpandedSize.x) + 1f) / 3f; } else if (m_ExpandedSize.x < m_ExpandedSize.y) { m_WidthDuration = (2 * (m_ExpandedSize.x / m_ExpandedSize.y) + 1f) / 3f; } } m_BaseRectTransform.gameObject.SetActive(false); m_Shadow = m_PanelShadowCanvasGroup != null; if (m_FinalExpandMode == ExpandMode.Radial) { m_PanelRootRectTransform.SetPositionRegardlessOfPivot(expandedPosition); m_PanelRootRectTransform.sizeDelta = expandedSize; TweenManager.TweenFloat(f => { m_MaskRect.sizeDelta = m_PanelRootRectTransform.sizeDelta; m_MaskRect.position = m_PanelRootRectTransform.GetPositionRegardlessOfPivot(); m_Ripple.rectTransform.sizeDelta = Tween.CubeSoftOut(m_Ripple.rectTransform.sizeDelta, new Vector2(m_CircleExpandedSize, m_CircleExpandedSize), f, 1f); m_Ripple.rectTransform.position = Tween.CubeSoftOut(m_BaseRectTransform.GetPositionRegardlessOfPivot(), m_PanelRootRectTransform.GetPositionRegardlessOfPivot(), f, 1f); m_Ripple.SubmitSizeForSoftening(); if (m_Shadow) { m_PanelShadowCanvasGroup.alpha = Tween.CubeInOut(0f, 1f, f - 0.5f, 0.5f); } m_PanelContentCanvasGroup.alpha = Tween.CubeInOut(0f, 1f, f - 0.5f, 0.25f); m_Ripple.color = m_Ripple.color.WithAlpha(Tween.CubeInOut(1f, 0f, f - 0.5f, 0.5f)); }, 0f, 1f, m_AnimationDuration, tweenType: Tween.TweenType.Linear); TweenManager.TimedCallback(m_AnimationDuration, m_Ripple.InstantContract); } else if (m_FinalExpandMode == ExpandMode.Rectangular) { TweenManager.TweenFloat(f => { if (m_ExpandedPosition.y > m_BaseRectTransform.position.y) { m_PanelRootRectTransform.sizeDelta = new Vector2( Tween.QuintOut(m_BaseRectTransform.sizeDelta.x, expandedSize.x, f, m_WidthDuration), Tween.QuintSoftOut(m_BaseRectTransform.sizeDelta.y, expandedSize.y, f, m_HeightDuration)); m_PanelRootRectTransform.SetPositionRegardlessOfPivot(new Vector2( Tween.QuintOut(m_BaseRectTransform.GetPositionRegardlessOfPivot().x, expandedPosition.x, f, m_WidthDuration), Tween.QuintSoftOut(m_BaseRectTransform.GetPositionRegardlessOfPivot().y, expandedPosition.y, f, m_HeightDuration))); } else { m_PanelRootRectTransform.sizeDelta = new Vector2( Tween.QuintSoftOut(m_BaseRectTransform.sizeDelta.x, expandedSize.x, f, m_WidthDuration), Tween.QuintOut(m_BaseRectTransform.sizeDelta.y, expandedSize.y, f, m_HeightDuration)); m_PanelRootRectTransform.SetPositionRegardlessOfPivot(new Vector2( Tween.QuintSoftOut(m_BaseRectTransform.GetPositionRegardlessOfPivot().x, expandedPosition.x, f, m_WidthDuration), Tween.QuintOut(m_BaseRectTransform.GetPositionRegardlessOfPivot().y, expandedPosition.y, f, m_HeightDuration))); } if (m_Shadow) { m_PanelShadowCanvasGroup.alpha = Tween.QuintOut(0f, 1f, f, 0.25f); } m_PanelContentCanvasGroup.alpha = Tween.QuintInOut(0f, 1f, f - 0.5f, 0.5f); }, 0f, 1f, m_AnimationDuration, tweenType: Tween.TweenType.Linear); } else if (m_FinalExpandMode == ExpandMode.Hybrid) { Vector2 startPos = m_BaseRectTransform.GetPositionRegardlessOfPivot(); m_PanelRootRectTransform.sizeDelta = m_BaseRectTransform.sizeDelta; m_PanelRootRectTransform.SetPositionRegardlessOfPivot(m_BaseRectTransform.GetPositionRegardlessOfPivot()); TweenManager.TweenFloat(f => { if (m_ExpandedPosition.y > m_BaseRectTransform.position.y) { m_PanelRootRectTransform.sizeDelta = new Vector2( Tween.QuintOut(m_BaseRectTransform.sizeDelta.x, expandedSize.x, f, m_WidthDuration), Tween.QuintSoftOut(m_BaseRectTransform.sizeDelta.y, expandedSize.y, f, m_HeightDuration)); m_PanelRootRectTransform.SetPositionRegardlessOfPivot(new Vector2( Tween.QuintOut(startPos.x, expandedPosition.x, f, m_WidthDuration), Tween.QuintSoftOut(startPos.y, expandedPosition.y, f, m_HeightDuration))); } else { m_PanelRootRectTransform.sizeDelta = new Vector2( Tween.QuintSoftOut(m_BaseRectTransform.sizeDelta.x, expandedSize.x, f, m_WidthDuration), Tween.QuintOut(m_BaseRectTransform.sizeDelta.y, expandedSize.y, f, m_HeightDuration)); m_PanelRootRectTransform.SetPositionRegardlessOfPivot(new Vector2( Tween.QuintSoftOut(startPos.x, expandedPosition.x, f, m_WidthDuration), Tween.QuintOut(startPos.y, expandedPosition.y, f, m_HeightDuration))); } m_MaskRect.sizeDelta = m_PanelRootRectTransform.sizeDelta; m_MaskRect.position = m_PanelRootRectTransform.GetPositionRegardlessOfPivot(); m_Ripple.rectTransform.sizeDelta = Tween.CubeSoftOut(m_Ripple.rectTransform.sizeDelta, new Vector2(m_CircleExpandedSize, m_CircleExpandedSize), f - 0.2f, 1f); m_Ripple.rectTransform.anchoredPosition = Vector2.zero; m_Ripple.SubmitSizeForSoftening(); if (m_Shadow) { m_PanelShadowCanvasGroup.alpha = Tween.CubeInOut(0f, 1f, f - 0.4f, 0.6f); } m_PanelContentCanvasGroup.alpha = Tween.CubeInOut(0f, 1f, f - 0.4f, 0.3f); m_Ripple.color = m_Ripple.color.WithAlpha(Tween.CubeInOut(1f, 0f, f - 0.5f, 0.5f)); }, 0f, 1f, m_AnimationDuration, tweenType: Tween.TweenType.Linear); if (m_DarkenBackground) { TweenManager.TweenColor(color => m_BackgroundImage.color = color, m_BackgroundImage.color, MaterialColor.disabledDark, m_AnimationDuration * 0.5f, m_AnimationDuration * 0.5f, tweenType: Tween.TweenType.EaseInOutCubed); } TweenManager.TimedCallback(m_AnimationDuration * 0.7f, m_Ripple.InstantContract); } }