using System; using System.Collections; using System.Collections.Generic; using UnityEngine; [RequireComponent(typeof(CanvasGroup))] public class MinigameInstruction : MonoBehaviour { public float instructionTimeout = 2f; public float fadeinTime = 0.5f; private CanvasGroup _canvasGroup; private void Awake() { _canvasGroup = GetComponent(); _canvasGroup.alpha = 0; } public void Show() { StartCoroutine(FadeIn()); StartCoroutine(FadeOutAfterTimeout()); } private IEnumerator FadeIn() { // Debug.Log("Fading in"); float t = 0; while (t < fadeinTime) { t += Time.deltaTime; _canvasGroup.alpha = t / fadeinTime; yield return null; } _canvasGroup.alpha = 1; } private IEnumerator FadeOutAfterTimeout() { yield return new WaitForSeconds(instructionTimeout + fadeinTime); // Debug.Log("Fading out"); float t = 0; while (t < fadeinTime) { t += Time.deltaTime; _canvasGroup.alpha = 1 - t / fadeinTime; yield return null; } _canvasGroup.alpha = 0; } }