summaryrefslogtreecommitdiff
path: root/Client/Assets/Scripts/UICommon/XUISpriteAnimation.cs
blob: 73b379b931d82ddcfd2f934cf8b4c43a315bdb6f (plain)
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
using System;
using UILib;
using UnityEngine;

public delegate void SpriteAnimationFinishEventHandler();
public class XUISpriteAnimation : XUIObject, IXUISpriteAnimation
{
    protected override void OnAwake()
    {
        base.OnAwake();

        m_Animation = GetComponent<UISpriteAnimation>();
        if (m_Animation == null)
        {
            Debug.Log("no UISpriteAnimation component");
        }
    }

    public void SetNamePrefix(string name)
    {
        m_Animation.namePrefix = name;
        m_Animation.Reset();
    }

    public void SetNamePrefix(string atlas, string name)
    {
        m_Animation.sprite.SetAtlas("atlas/UI/" + atlas);
        SetNamePrefix(name);
    }

    public void SetFrameRate(int rate)
    {
        m_Animation.framesPerSecond = rate;
    }

    public void Reset()
    {
        m_Animation.Reset();
        m_Animation.LastLoopFinishTime = RealTime.time;
    }

    public void StopAndReset()
    {
        m_Animation.StopAndReset();
    }

    public void RegisterFinishCallback(SpriteAnimationFinishCallback callback)
    {
        if (callback != null)
        {
            m_FinishCallback = callback;
            m_Animation.FinishHandler = _SpriteAnimationFinished;
        }
    }

    public void MakePixelPerfect()
    {
        if (m_Animation != null && m_Animation.sprite != null)
            m_Animation.sprite.MakePixelPerfect();
    }

    public void _SpriteAnimationFinished()
    {
        if (m_FinishCallback != null)
            m_FinishCallback(this);
    }

   

    private UISpriteAnimation m_Animation;
    SpriteAnimationFinishCallback m_FinishCallback;


}