unity——PictureAnimation

代码获取图集切割的图片

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鱼游戏开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值