summaryrefslogtreecommitdiff
path: root/Assets/Scripts/AbilitySystem/Abilities/AbilityBase.cs
blob: 8b1a55490900a156d5e71ba15b6fb5ba64115948 (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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// 同一个角色同一个时间只能有一个ability
/// </summary>
public abstract class AbilityBase
{
    protected int m_AbilityID;
    public int ID
    {
        get
        {
            return m_AbilityID;
        }
    }

    public AbilityBase()
    {
        m_AbilityID = UIDManager.Acquire();
    }

    public virtual void OnInit() { }

    /// <summary>
    /// 进入当前ability的回调
    /// </summary>
    public virtual void OnEnter() { }

    /// <summary>
    /// 退出当前ability的回调
    /// </summary>
    public virtual void OnExit() { }

    /// <summary>
    /// 当前ability的update函数
    /// </summary>
    public virtual void OnUpdate() { }

	/// <summary>
	/// 在物理模拟之后更新
	/// </summary>
	public virtual void OnLateUpdate() { }

    /// <summary>
    /// 过渡到下一个ability的回调
    /// </summary>
    /// <param name="to"></param>
    public virtual void OnTranslate(AbilityBase to) { }

    /// <summary>
    /// 检测到hitbox碰撞时的回调
    /// </summary>
    public virtual void OnHit() { }

    /// <summary>
    /// 检测到hurtbox碰撞时的回调
    /// </summary>
    public virtual void OnHurt() { }

    /// <summary>
    /// 检测到defendbox碰撞时的回调
    /// </summary>
    public virtual void OnDefend() { }
}