示例#1
0
        /// <summary>
        /// Hides the carousel with an optional transition animation and an optional callback invoked animation is complete.
        /// </summary>
        /// <param name="transition">The type of visibility transition to use.</param>
        /// <param name="onComplete">Callback invoked when animation is complete.</param>
        public void Hide(VisibilityTransitionType transition = VisibilityTransitionType.NONE, Action onComplete = null)
        {
            m_Pivot.localScale    = Vector3.one;
            m_Pivot.localPosition = Vector3.zero;

            switch (transition)
            {
            case VisibilityTransitionType.NONE:
                gameObject.SetActive(false);
                break;

            case VisibilityTransitionType.UP:
                m_Pivot
                .DOLocalMoveY(m_Radius, m_VisibilityTransitionDuration)
                .SetEase(m_VisibilityTransitionEasing)
                .OnComplete(() =>
                {
                    gameObject.SetActive(false);

                    if (onHide != null)
                    {
                        onHide.Invoke(this);
                    }

                    if (onComplete != null)
                    {
                        onComplete.Invoke();
                    }
                });

                m_Pivot
                .DOScale(0f, m_VisibilityTransitionDuration)
                .SetEase(m_HideTransitionCurve);
                break;

            case VisibilityTransitionType.DOWN:
                m_Pivot
                .DOLocalMoveY(-m_Radius, m_VisibilityTransitionDuration)
                .SetEase(m_VisibilityTransitionEasing)
                .OnComplete(() =>
                {
                    gameObject.SetActive(false);

                    if (onHide != null)
                    {
                        onHide.Invoke(this);
                    }

                    if (onComplete != null)
                    {
                        onComplete.Invoke();
                    }
                });

                m_Pivot
                .DOScale(0f, m_VisibilityTransitionDuration)
                .SetEase(m_HideTransitionCurve);
                break;
            }
        }
示例#2
0
        /// <summary>
        /// Shows the carousel with an optional transition animation and an optional callback invoked when animation is complete.
        /// </summary>
        /// <param name="transition">The type of visibility transition to use.</param>
        /// <param name="onComplete">Callback invoked when animation is complete.</param>
        public void Show(VisibilityTransitionType transition = VisibilityTransitionType.NONE, Action onComplete = null)
        {
            m_Pivot.localScale    = Vector3.one;
            m_Pivot.localPosition = Vector3.zero;

            switch (transition)
            {
            case VisibilityTransitionType.NONE:
                gameObject.SetActive(true);
                break;

            case VisibilityTransitionType.UP:
                m_Pivot.transform.localPosition -= Vector3.up * m_Radius;
                m_Pivot.transform.localScale     = Vector3.zero;

                gameObject.SetActive(true);

                m_Pivot
                .DOLocalMoveY(0f, m_VisibilityTransitionDuration)
                .SetEase(m_VisibilityTransitionEasing);

                m_Pivot
                .DOScale(1f, m_VisibilityTransitionDuration)
                .SetEase(m_ShowTransitionCurve)
                .OnComplete(() =>
                {
                    if (onShow != null)
                    {
                        onShow.Invoke(this);
                    }

                    if (onComplete != null)
                    {
                        onComplete.Invoke();
                    }
                });
                break;

            case VisibilityTransitionType.DOWN:
                m_Pivot.transform.localPosition += Vector3.up * m_Radius;
                m_Pivot.transform.localScale     = Vector3.zero;

                gameObject.SetActive(true);

                m_Pivot
                .DOLocalMoveY(0f, m_VisibilityTransitionDuration)
                .SetEase(m_VisibilityTransitionEasing);

                m_Pivot
                .DOScale(1f, m_VisibilityTransitionDuration)
                .SetEase(m_ShowTransitionCurve)
                .OnComplete(() =>
                {
                    if (onShow != null)
                    {
                        onShow.Invoke(this);
                    }

                    if (onComplete != null)
                    {
                        onComplete.Invoke();
                    }
                });

                break;
            }
        }