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(); 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; } }