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