50 lines
974 B
C#
50 lines
974 B
C#
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<SpriteRenderer>();
|
|
}
|
|
|
|
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);
|
|
|
|
}
|
|
}
|