Esempio n. 1
0
    private IEnumerator Activate(StarActivation activationInfo)
    {
        float t = 0f;

        originalSize = Vector2.one;

        filled.gameObject.SetActive(true);
        glow.gameObject.SetActive(true);
        Vector2 startSize = Vector2.zero;

        while (t <= activationInfo.ScaleTime)
        {
            t += Time.deltaTime;

            filled.rectTransform.localScale = Vector2.LerpUnclamped(startSize, originalSize,
                                                                    activationInfo.ScaleCurve.Evaluate(t / activationInfo.ScaleTime));

            yield return(null);
        }

        filled.rectTransform.sizeDelta = originalSize;

        t = 0;

        Color startColour = outline.color;
        Color endColour   = startColour;

        endColour.a = 1f;

        while (t <= activationInfo.BorderFadeTime)
        {
            t += Time.deltaTime;

            outline.color = Color.Lerp(startColour, endColour, t / activationInfo.BorderFadeTime);

            yield return(null);
        }

        outline.color = endColour;

        t = 0;

        Vector2 originalScale    = filled.rectTransform.localScale;
        Vector2 endIncreaseScale = originalScale;

        endIncreaseScale.x += activationInfo.IncreaseScale;
        endIncreaseScale.y += activationInfo.IncreaseScale;


        while (t <= activationInfo.IncreaseScaleTime)
        {
            t += Time.deltaTime;

            filled.rectTransform.localScale = Vector2.LerpUnclamped(originalScale, endIncreaseScale,
                                                                    activationInfo.IncreaseCurve.Evaluate(t / activationInfo.IncreaseScaleTime));

            outline.rectTransform.localScale = Vector2.LerpUnclamped(originalScale, endIncreaseScale,
                                                                     activationInfo.IncreaseCurve.Evaluate(t / activationInfo.IncreaseScaleTime));

            yield return(null);
        }

        t = 0f;

        startColour = glow.color;
        endColour   = startColour;
        endColour.a = 1f;

        while (t <= activationInfo.GlowFadeTime)
        {
            t += Time.deltaTime;

            glow.color = Color.Lerp(startColour, endColour, t / activationInfo.GlowFadeTime);

            yield return(null);
        }

        glow.color = endColour;
    }
Esempio n. 2
0
 public void ActivateStar(StarActivation activationInfo)
 {
     StartCoroutine(Activate(activationInfo));
 }