49 lines
		
	
	
		
			1020 B
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1020 B
		
	
	
	
		
			C#
		
	
	
	
using System.Collections;
 | 
						|
using System.Collections.Generic;
 | 
						|
using UnityEngine;
 | 
						|
using UnityEngine.UI;
 | 
						|
 | 
						|
[RequireComponent(typeof(Image))]
 | 
						|
public class ImageFrameAni : MonoBehaviour
 | 
						|
{
 | 
						|
    [SerializeField] Sprite[] mSprFrames;
 | 
						|
    [SerializeField] int mFrameRate = 30;
 | 
						|
    [SerializeField] bool mIsPlaying = true;
 | 
						|
 | 
						|
    private Image mImg;
 | 
						|
 | 
						|
    private int mCurIndex;
 | 
						|
 | 
						|
    private float mDelta;
 | 
						|
    private float mTimer;
 | 
						|
 | 
						|
    private void Awake()
 | 
						|
    {
 | 
						|
        mImg = GetComponent<Image>();
 | 
						|
    }
 | 
						|
 | 
						|
    private void Start()
 | 
						|
    {
 | 
						|
        mDelta = 1.0f / mFrameRate;
 | 
						|
        mTimer = mDelta;
 | 
						|
 | 
						|
        mCurIndex = 0;
 | 
						|
        mImg.sprite = mSprFrames[mCurIndex];
 | 
						|
    }
 | 
						|
 | 
						|
    private void Update()
 | 
						|
    {
 | 
						|
        if (mSprFrames.Length > 0 && mIsPlaying)
 | 
						|
        {
 | 
						|
            mTimer -= Time.deltaTime;
 | 
						|
 | 
						|
            if (mTimer <= 0)
 | 
						|
            {
 | 
						|
                mCurIndex = (mCurIndex + 1) % mSprFrames.Length;
 | 
						|
                mImg.sprite = mSprFrames[mCurIndex];
 | 
						|
 | 
						|
                mTimer = mDelta;
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |