Untitled

 avatar
unknown
csharp
2 years ago
1.7 kB
4
Indexable
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FadeManager : MonoBehaviour
{
    public static FadeManager Instance;
    private Transform player;

    [HideInInspector]
    public SpriteRenderer spriteRender;


    [SerializeField] private Color startColor;
    [SerializeField] private Color endColor;

    private void Awake()
    {
        Instance = this;
    }

    private void Start()
    {
        player = GameObject.FindGameObjectWithTag("Player").transform;
    }

    public void FadeThis(SpriteRenderer spriteRender)
    {
        this.spriteRender = spriteRender;
        StartCoroutine(FadeIn());
    }

    public void FadeOutThis(SpriteRenderer spriteRender)
    {
        this.spriteRender = spriteRender;
        StartCoroutine(FadeOut());
    }

    IEnumerator FadeIn()
    {
        float duration = 1;
        float lerpDuration = 1;
        float timeElapsed = 0;

        while(duration > 0)
        {
            duration -= Time.deltaTime;
            timeElapsed += Time.deltaTime;

            spriteRender.color = Color.LerpUnclamped(spriteRender.color, endColor, timeElapsed / lerpDuration);
            yield return null;
        }
    }

    IEnumerator FadeOut()
    {
        float duration = 1;
        float lerpDuration = 1;
        float timeElapsed = 0;

        while (duration > 0)
        {
            duration -= Time.deltaTime;
            timeElapsed += Time.deltaTime;

            spriteRender.color = Color.LerpUnclamped(spriteRender.color, startColor, timeElapsed / lerpDuration);
            yield return null;
        }
    }
}
Editor is loading...