using System.Collections; using System.Collections.Generic; using UnityEngine; public class AnimatedSprite : MonoBehaviour { public Sprite[] sprites; private SpriteRenderer spriteRenderer; private int frame; private void Awake() { spriteRenderer = GetComponent(); } private void OnEnable() { Invoke(nameof(Animate), 0f); } private void OnDisable() { CancelInvoke(); } private void Animate() { Debug.Log("Animating " + frame); frame++; if (frame >= sprites.Length) { frame = 0; } if (frame >= 0 && frame < sprites.Length) { spriteRenderer.sprite = sprites[frame]; } float timeForNextFrame = 1f / GameManager.Instance.gameSpeed; if (timeForNextFrame > 0.5f) { timeForNextFrame = 0.5f; } Invoke(nameof(Animate), timeForNextFrame); } }