CDManager的编写及应用
1、前言
最近摸鱼,临近实习,开始写项目。然后其中需要用到技能冷却,就顺手摸了个技能冷却管理器,用的是自己的思路。
2、逻辑原理
逻辑原理其实挺简单,就是单独一个单例类,里面声明一个字典,使用的时候Add到字典里面。然后在这个类里用update去刷新冷却时间,如果冷却结束就移除这个词条。然后当再次调用的时候就检查字典里面是否存在该技能名称,如果存在就返回剩余冷却时间,如果不存在就说明已经冷却结束,可以再次使用。
废话结束,上代码。
3、前置需要
因为是一整个的项目,所以有其他的脚本交互,如果自己能理解也可以直接跳到代码本体位置
3.1、Singleton单例基类
继承此类皆为单例
public class Singleton<T> where T: class
{
class Nested
{
//Activator.CreateInstance需要 using System
internal static readonly T instance = (T)Activator.CreateInstance(typeof(T),true);
}
private static T _instance = null;
public static T Instance
{
get{
return Nested.instance;
}
}
}
3.2、DDOLSingleton单例基类
public class DDOLSingleton<T> : MonoBehaviour where T : MonoBehaviour
{
protected static T _instance &#