using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Fade : MonoBehaviour
{
[SerializeField] CanvasGroup canvasGroup;
[SerializeField] float fadeDuration = 1f;
public void FadeIn()
{
StartCoroutine(FadeCanvasGroup(canvasGroup, canvasGroup.alpha, 1, fadeDuration, true));
}
public void FadeOut()
{
StartCoroutine(FadeCanvasGroup(canvasGroup, canvasGroup.alpha, 0, fadeDuration, false));
}
IEnumerator FadeCanvasGroup(CanvasGroup cg, float start, float end, float duration, bool isInteractable)
{
if (!isInteractable)
{
cg.interactable = false;
cg.blocksRaycasts = false;
}
float elapsedTime = 0f;
while (elapsedTime < duration)
{
cg.alpha = Mathf.Lerp(start, end, elapsedTime/duration);
elapsedTime += Time.deltaTime;
yield return null;
}
cg.alpha = end;
cg.interactable = isInteractable;
cg.blocksRaycasts = isInteractable;
}
}
반응형
댓글