gather-and-defend/Assets/Scripts/CloudAnimation.cs
Felix Boucher 9e07c48fd4 ajout de transition avant de loader le level
besoin :

- le level était loadé directement au moment de cliquer dans le level selector ce qui n'est pas très fenshui

solution :

- fade out avec nuages
- les tuiles tombent à leur place au lieu d'apparaitre toutes en même temps
2023-10-01 21:48:35 -04:00

51 lines
1.3 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using static Codice.Client.Common.WebApi.WebApiEndpoints;
public class CloudAnimation : MonoBehaviour
{
[System.Serializable]
public class Properties
{
public float fadeInTime = 1;
public float stayTime = 1;
public float fadeOutTime = 1;
public float speed = 1;
}
CanvasGroup canvasGroup;
public Properties properties;
private Coroutine coroutine;
// Start is called before the first frame update
void Start()
{
canvasGroup = GetComponent<CanvasGroup>();
coroutine = StartCoroutine(AnimateCloud());
}
public void Kill()
{
StopCoroutine(coroutine);
StartCoroutine(KillCloud());
}
IEnumerator AnimateCloud()
{
canvasGroup.alpha = 0;
yield return canvasGroup.FadeTo(1, properties.fadeInTime);
yield return new WaitForSeconds(properties.stayTime);
yield return KillCloud();
}
IEnumerator KillCloud()
{
yield return canvasGroup.FadeTo(0, properties.fadeOutTime);
Destroy(gameObject);
}
// Update is called once per frame
void Update()
{
transform.position += properties.speed * Time.deltaTime * Vector3.left * Camera.main.orthographicSize;
}
}