Exemple #1
0
 /// <summary>
 /// Sets the state the animation should start in.
 /// </summary>
 /// <param name="startState">Start state.</param>
 public void SetStartState(UIAnimationState startState)
 {
     m_uiAnimState = startState;
 }
Exemple #2
0
    /// <summary>
    /// Resets the animation to the specified state.
    /// </summary>
    public void ResetToState(UIAnimationState state)
    {
        m_uiAnimState = state;
        switch (m_uiAnimatorType)
        {
        case UIAnimatorType.TRANSFORM:
        default:
            if (m_animatePosition)
            {
                m_transform.position = (state == UIAnimationState.STATE1) ?
                                       m_animState1_position :
                                       m_animState2_position;
            }
            if (m_animateRotation)
            {
                m_transform.eulerAngles = (state == UIAnimationState.STATE1) ?
                                          m_animState1_rotation :
                                          m_animState2_rotation;
            }
            if (m_animateScale)
            {
                m_transform.localScale = (state == UIAnimationState.STATE1) ?
                                         m_animState1_scale :
                                         m_animState2_scale;
            }
            break;

        case UIAnimatorType.COLOR:
            if (m_animateAlpha)
            {
                foreach (SpriteRenderer spriteRenderer in m_spriteRenderers)
                {
                    spriteRenderer.SetAlpha((state == UIAnimationState.STATE1) ?
                                            m_animState1_alpha :
                                            m_animState2_alpha);
                }
                foreach (Renderer renderer in m_renderers)
                {
                    renderer.SetAlpha((state == UIAnimationState.STATE1) ?
                                      m_animState1_alpha :
                                      m_animState2_alpha);
                }
            }
            if (m_animateColor)
            {
                foreach (SpriteRenderer spriteRenderer in m_spriteRenderers)
                {
                    spriteRenderer.color = (state == UIAnimationState.STATE1) ?
                                           m_animState1_color :
                                           m_animState2_color;
                }
                foreach (Renderer renderer in m_renderers)
                {
                    renderer.material.color = (state == UIAnimationState.STATE1) ?
                                              m_animState1_color :
                                              m_animState2_color;
                }
            }
            break;
        }
    }
Exemple #3
0
    /// <summary>
    /// Updates the pledge popup animation.
    /// </summary>
    private void UpdateUIAnimation(float deltaTime)
    {
        if (!IsActive || (m_useAnimSpeed && m_animSpeed == 0.0f))
        {
            return;
        }

        switch (m_uiAnimState)
        {
        case UIAnimationState.TO_STATE1:
            // Animate from state 2 to state 1
            m_timeSinceAnimStart += deltaTime;
            if (m_animatePosition)
            {
                m_transform.position = Vector3.Lerp(m_animState2_position, m_animState1_position,
                                                    m_timeSinceAnimStart * m_animSpeed);
            }
            if (m_animateRotation)
            {
                m_transform.eulerAngles = Vector3.Lerp(m_animState2_rotation, m_animState1_rotation,
                                                       m_timeSinceAnimStart * m_animSpeed);
            }
            if (m_animateScale)
            {
                m_transform.localScale = Vector3.Lerp(m_animState2_scale, m_animState1_scale,
                                                      m_timeSinceAnimStart * m_animSpeed);
            }
            if (m_animateAlpha)
            {
                foreach (SpriteRenderer spriteRenderer in m_spriteRenderers)
                {
                    spriteRenderer.SetAlpha(Mathf.Lerp(m_animState2_alpha, m_animState1_alpha,
                                                       m_timeSinceAnimStart * m_animSpeed));
                }
                foreach (Renderer renderer in m_renderers)
                {
                    renderer.SetAlpha(Mathf.Lerp(m_animState2_alpha, m_animState1_alpha,
                                                 m_timeSinceAnimStart * m_animSpeed));
                }
            }
            if (m_animateColor)
            {
                foreach (SpriteRenderer spriteRenderer in m_spriteRenderers)
                {
                    spriteRenderer.color = Color.Lerp(m_animState2_color, m_animState1_color,
                                                      m_timeSinceAnimStart * m_animSpeed);
                }
                foreach (Renderer renderer in m_renderers)
                {
                    renderer.material.color = Color.Lerp(m_animState2_color, m_animState1_color,
                                                         m_timeSinceAnimStart * m_animSpeed);
                }
            }
            // Check if animation is done
            if (m_timeSinceAnimStart > m_animTime)
            {
                m_timeSinceAnimStart = 0.0f;
                m_uiAnimState        = UIAnimationState.STATE1;
            }
            break;

        case UIAnimationState.STATE1:
            // Now in animation state 1
            break;

        case UIAnimationState.TO_STATE2:
            // Animate from state 1 to state 2
            m_timeSinceAnimStart += deltaTime;
            if (m_animatePosition)
            {
                m_transform.position = Vector3.Lerp(m_animState1_position, m_animState2_position,
                                                    m_timeSinceAnimStart * m_animSpeed);
            }
            if (m_animateRotation)
            {
                m_transform.eulerAngles = Vector3.Lerp(m_animState1_rotation, m_animState2_rotation,
                                                       m_timeSinceAnimStart * m_animSpeed);
            }
            if (m_animateScale)
            {
                m_transform.localScale = Vector3.Lerp(m_animState1_scale, m_animState2_scale,
                                                      m_timeSinceAnimStart * m_animSpeed);
            }
            if (m_animateAlpha)
            {
                foreach (SpriteRenderer spriteRenderer in m_spriteRenderers)
                {
                    spriteRenderer.SetAlpha(Mathf.Lerp(m_animState1_alpha, m_animState2_alpha,
                                                       m_timeSinceAnimStart * m_animSpeed));
                }
                foreach (Renderer renderer in m_renderers)
                {
                    renderer.SetAlpha(Mathf.Lerp(m_animState1_alpha, m_animState2_alpha,
                                                 m_timeSinceAnimStart * m_animSpeed));
                }
            }
            if (m_animateColor)
            {
                foreach (SpriteRenderer spriteRenderer in m_spriteRenderers)
                {
                    spriteRenderer.color = Color.Lerp(m_animState1_color, m_animState2_color,
                                                      m_timeSinceAnimStart * m_animSpeed);
                }
                foreach (Renderer renderer in m_renderers)
                {
                    renderer.material.color = Color.Lerp(m_animState1_color, m_animState2_color,
                                                         m_timeSinceAnimStart * m_animSpeed);
                }
            }
            // Check if animation is done
            if (m_timeSinceAnimStart > m_animTime)
            {
                m_timeSinceAnimStart = 0.0f;
                m_uiAnimState        = UIAnimationState.STATE2;
            }
            break;

        case UIAnimationState.STATE2:
        default:
            // Now in animation state 2
            break;
        }
    }
    /// <summary>
    /// Updates the UI animation.
    /// </summary>
    private void UpdateUIAnimation(float deltaTime)
    {
        if (!IsActive || (m_useAnimSpeed && m_animSpeed == 0.0f))
        {
            return;
        }

        // Make sure to use updated values
        if (m_useAnimSpeed && m_animTime == UNASSIGNED_VALUE)
        {
            // s = d/t, t = d/s -> Animation time = amount to lerp / animation speed
            if (m_lerpAmount != UNASSIGNED_VALUE)
            {
                m_animTime = m_lerpAmount / m_animSpeed;
            }
            // If lerp amount is unassigned, i.e. start and end values have not been set, return
            else
            {
                return;
            }
        }

        switch (m_uiAnimState)
        {
        case UIAnimationState.TO_STATE1:
            // Animate from state 2 to state 1
            m_timeSinceAnimStart += deltaTime;
            float percentToState1 = (m_animTime != 0.0f) ? (m_timeSinceAnimStart / m_animTime) : 1.0f;

            if (m_animatePosition)
            {
                Vector3 newPos = Vector3.Lerp(m_animState2_position, m_animState1_position, percentToState1);
                if (m_animateLocal)
                {
                    m_transform.localPosition = newPos;
                }
                else
                {
                    m_transform.position = newPos;
                }
            }
            if (m_animateRotation)
            {
                Vector3 newRot = Vector3.Lerp(m_animState2_rotation, m_animState1_rotation, percentToState1);
                if (m_animateLocal)
                {
                    m_transform.localEulerAngles = newRot;
                }
                else
                {
                    m_transform.eulerAngles = newRot;
                }
            }
            if (m_animateScale)
            {
                m_transform.localScale = Vector3.Lerp(m_animState2_scale, m_animState1_scale, percentToState1);
            }
            if (m_animateAlpha)
            {
                foreach (SpriteRenderer spriteRenderer in m_spriteRenderers)
                {
                    spriteRenderer.SetAlpha(Mathf.Lerp(m_animState2_alpha, m_animState1_alpha, percentToState1));
                }
                foreach (Renderer renderer in m_renderers)
                {
                    renderer.SetAlpha(Mathf.Lerp(m_animState2_alpha, m_animState1_alpha, percentToState1));
                }
            }
            if (m_animateColor)
            {
                foreach (SpriteRenderer spriteRenderer in m_spriteRenderers)
                {
                    spriteRenderer.color = Color.Lerp(m_animState2_color, m_animState1_color, percentToState1);
                }
                foreach (Renderer renderer in m_renderers)
                {
                    renderer.material.color = Color.Lerp(m_animState2_color, m_animState1_color, percentToState1);
                }
            }
            if (m_animateFontSize)
            {
                m_textMesh.fontSize = (int)Mathf.Lerp(m_animState2_fontSize, m_animState1_fontSize, percentToState1);
            }
            // Check if animation is done
            if (m_timeSinceAnimStart > m_animTime)
            {
                m_timeSinceAnimStart = 0.0f;
                m_uiAnimState        = UIAnimationState.STATE1;
            }
            break;

        case UIAnimationState.STATE1:
            // Now in animation state 1
            break;

        case UIAnimationState.TO_STATE2:
            // Animate from state 1 to state 2
            m_timeSinceAnimStart += deltaTime;
            float percentToState2 = (m_animTime != 0.0f) ? (m_timeSinceAnimStart / m_animTime) : 1.0f;

            if (m_animatePosition)
            {
                Vector3 newPos = Vector3.Lerp(m_animState1_position, m_animState2_position, percentToState2);
                if (m_animateLocal)
                {
                    m_transform.localPosition = newPos;
                }
                else
                {
                    m_transform.position = newPos;
                }
            }
            if (m_animateRotation)
            {
                Vector3 newRot = Vector3.Lerp(m_animState1_rotation, m_animState2_rotation, percentToState2);
                if (m_animateLocal)
                {
                    m_transform.localEulerAngles = newRot;
                }
                else
                {
                    m_transform.eulerAngles = newRot;
                }
            }
            if (m_animateScale)
            {
                m_transform.localScale = Vector3.Lerp(m_animState1_scale, m_animState2_scale, percentToState2);
            }
            if (m_animateAlpha)
            {
                foreach (SpriteRenderer spriteRenderer in m_spriteRenderers)
                {
                    spriteRenderer.SetAlpha(Mathf.Lerp(m_animState1_alpha, m_animState2_alpha, percentToState2));
                }
                foreach (Renderer renderer in m_renderers)
                {
                    renderer.SetAlpha(Mathf.Lerp(m_animState1_alpha, m_animState2_alpha, percentToState2));
                }
            }
            if (m_animateColor)
            {
                foreach (SpriteRenderer spriteRenderer in m_spriteRenderers)
                {
                    spriteRenderer.color = Color.Lerp(m_animState1_color, m_animState2_color, percentToState2);
                }
                foreach (Renderer renderer in m_renderers)
                {
                    renderer.material.color = Color.Lerp(m_animState1_color, m_animState2_color, percentToState2);
                }
            }
            if (m_animateFontSize)
            {
                m_textMesh.fontSize = (int)Mathf.Lerp(m_animState1_fontSize, m_animState2_fontSize, percentToState2);
            }
            // Check if animation is done
            if (m_timeSinceAnimStart > m_animTime)
            {
                m_timeSinceAnimStart = 0.0f;
                m_uiAnimState        = UIAnimationState.STATE2;
            }
            break;

        case UIAnimationState.STATE2:
        default:
            // Now in animation state 2
            break;
        }
    }