少年修仙传客户端基础资源
dabaoji
2025-06-09 8ee0256378cbf5dbc9d76ed10b60b65a844ef4dd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Sunday, December 10, 2017
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System;
 
 
namespace StartAot
{
    public class FrameEffectEx : MonoBehaviour
    {
        [SerializeField] Image m_Behaviour;
        [SerializeField] Sprite[] m_Sprites;
 
        float interval = 0.1f;
        int index = 0;
        float timer = 0f;
        float tempSumTime = 1f;
 
        [SerializeField] float onceTime = 1f;
        [SerializeField] float sumTime = 1f;
        [SerializeField] int aniIndex = 0;
        public bool loop = true;
 
        public event Action<int> CompleteAct;
 
        private void OnEnable()
        {
            if (m_Sprites != null && m_Sprites.Length > 0)
            {
                interval = onceTime / m_Sprites.Length;
                index = 0;
                timer = 0f;
                tempSumTime = sumTime;
 
                m_Behaviour.overrideSprite = m_Sprites[index];
            }
        }
 
        private void LateUpdate()
        {
            timer += Time.deltaTime;
            tempSumTime -= Time.deltaTime;
 
            if (m_Sprites == null || m_Sprites.Length == 0)
            {
                return;
            }
 
            if (tempSumTime > 0)
            {
                if (timer > interval)
                {
                    m_Behaviour.overrideSprite = m_Sprites[index];
                    index = (++index) % m_Sprites.Length;
                    timer -= interval;
                }
            }
            else
            {
                if (loop)
                {
                    tempSumTime = sumTime;
                }
 
                if (CompleteAct != null)
                {
                    CompleteAct(aniIndex);
                }
            }
        }
 
        public void SetSprites(Sprite[] sprites, float _totalTime)
        {
            m_Sprites = sprites;
            onceTime = _totalTime;
            sumTime = _totalTime;
            if (m_Sprites != null && m_Sprites.Length > 0)
            {
                interval = onceTime / m_Sprites.Length;
                index = 0;
                timer = 0f;
                tempSumTime = sumTime;
 
                m_Behaviour.sprite = m_Sprites[index];
                m_Behaviour.overrideSprite = m_Sprites[index];
            }
        }
 
    }
 
 
 
 
}