You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

44 lines
1.0 KiB

using UnityEngine;
public class SpritesAnimation : MonoBehaviour
{
[SerializeField] Sprite[] sprites;
[SerializeField] SpriteRenderer spriteRenderer;
[SerializeField] float frame;
[SerializeField] bool loop;
int currentImgIdx;
float prevTime;
private void Awake()
{
if(spriteRenderer == null)
spriteRenderer = GetComponent<SpriteRenderer>();
}
private void Update()
{
if (sprites.Length == 0) return;
float delta = Time.time - prevTime;
float interval = frame / sprites.Length;
if (delta >= interval)
{
prevTime = Time.time;
if(loop)
currentImgIdx = (currentImgIdx + 1) % sprites.Length;
else
currentImgIdx = Mathf.Min(currentImgIdx + 1, sprites.Length - 1);
}
spriteRenderer.sprite = sprites[currentImgIdx];
}
private void OnValidate()
{
if(spriteRenderer != null)
spriteRenderer = GetComponent<SpriteRenderer>();
}
}