代码获取图集切割的图片
var sprites = Resources.LoadAll<Sprite>("Texture/hurt_front/hurt_001_0");
循环播放图片
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
public class PictureAnimation : MonoBehaviour {
[System.Serializable]
public struct Sprites
{
public Sprite[] sprites;
}
public Sprites[] list;
public float timer;
public bool isLoop = true;
public bool isStartPlay = true;
public int startIndex = 0;
private int row;
private int count;
private Image image;
private WaitForSeconds wait;
private bool isPlaying = false;
public bool IsPlaying { get { return isPlaying; } }
public void Play(int index)
{
row = index;
count = list[row].sprites.Length;
if (isLoop)
StartCoroutine("LoopPlay",0);
else
StartCoroutine("SinglePlay",0);
isPlaying = true;
}
public void Stop()
{
if (isLoop)
StopCoroutine("LoopPlay");
else
StopCoroutine("SinglePlay");
isPlaying = false;
image.sprite = list[startIndex].sprites[0];
}
private void Start()
{
image = GetComponent<Image>();
wait = new WaitForSeconds(timer);
if (isStartPlay)
Play(startIndex);
}
IEnumerator LoopPlay(int index)
{
yield return null;
while (isPlaying)
{
yield return wait;
index = (index + 1) % count;
image.sprite = list[row].sprites[index];
}
}
IEnumerator SinglePlay( int index)
{
yield return null;
int max = count - 1;
while(index++ < max)
{
yield return wait;
image.sprite = list[row].sprites[index];
}
Stop();
}
}