chip-gameV3/Assets/Scripts/BackToMenuButton.cs
2026-07-14 11:14:13 +03:00

53 lines
1.4 KiB
C#

using System.Collections;
using UnityEngine;
[RequireComponent(typeof(CanvasGroup))]
public class BackToMenuButton : MonoBehaviour
{
[Header("Появление")]
[SerializeField] float appearSpeed = 100;
[SerializeField] float appearDelay = 2;
[Header("Растворение")]
[SerializeField] float disappearSpeed = 1;
[SerializeField] float disappearDelay = 0;
CanvasGroup canvasGroup;
GameManager gm;
bool ActualState = false;
void Start()
{
canvasGroup = GetComponent<CanvasGroup>();
gm = GameManager.instance;
ActualState = gm.moveMade;
}
void Update()
{
if (ActualState != gm.moveMade)
{
ActualState = gm.moveMade;
StopAllCoroutines();
StartCoroutine(changeState());
}
}
IEnumerator changeState()
{
//actualState true значит что ход сделан и надо убрать надпись
float speed = ActualState ? disappearSpeed : appearSpeed;
float delay = ActualState ? disappearDelay : appearDelay;
float targetAlpha = ActualState ? 0 : 1;
yield return new WaitForSeconds(delay);
while (canvasGroup.alpha != targetAlpha)
{
canvasGroup.alpha = Mathf.MoveTowards(canvasGroup.alpha, targetAlpha, Time.deltaTime * speed);
yield return null;
}
canvasGroup.alpha = targetAlpha;
}
}