31 de mai. de 2017

Fade Out and Fade IN using Mathf.Lerp()

Lerp is a very interesting function because it changes a value between A and B depending on C.

Math.Lerp(A, B, C);

If C varies from the beginning to the end, you can simulate an Fade In or Fade out transition, for example.

In the example below, I want to go from 1 (A) to 0 (B) (fade out transition) in 3 seconds.

The for loop will take 3 seconds to complete (Time.deltatime / 3) and C will be an incremental value from 0 to 1.

We can think as if it was an Slider controller: when C are at the left (0), the value is A, if you slide to the right (1) the value is Y.

SpriteRenderer sprite = GetComponent<SpriteRenderer>();
void Start()

    IEnumerator fade1()
        Color newColor;

        for (float x = 0f; x < 1f; x += Time.deltaTime / 3)
            newColor = new Color(1, 1, 1, Mathf.Lerp(1, 0, x));
            sprite.color = newColor;

            yield return null;


Nenhum comentário: