void ChangeTimeWithType(ref float delay, EPETimeUnit timeUnit) { //时间单位换算 最小毫秒 if (timeUnit != EPETimeUnit.Millisecond) { switch (timeUnit) { case EPETimeUnit.Second: delay = delay * 1000; break; case EPETimeUnit.Minute: delay = delay * 1000 * 60; break; case EPETimeUnit.Hour: delay = delay * 1000 * 60 * 60; break; case EPETimeUnit.Day: delay = delay * 1000 * 60 * 60 * 24; break; default: LogInfo("Add Task TimeUnit Type error"); break; } } }
/// <summary> /// 添加一个计时器 /// </summary> /// <param name="callBack"></param> /// <param name="delay"></param> /// <param name="count"></param> /// <param name="timeUnit"></param> /// <returns></returns> public int AddTimeTask(Action callBack, float delay, int count = 1, EPETimeUnit timeUnit = EPETimeUnit.Millisecond) { int tid = GetTid(); ChangeTimeWithType(ref delay, timeUnit); //从游戏开始到现在的时间 nowTime = GetUTCMilliseconds(); tmpTimes.Add(new PETimeTask(tid, nowTime + delay, callBack, delay, count)); return(tid); }
/// <summary> /// 替换 /// </summary> /// <param name="tid"></param> /// <param name="callBack"></param> /// <param name="delay"></param> /// <param name="count"></param> /// <param name="timeUnit"></param> /// <returns></returns> public bool ReplaceTimeTask(int tid, Action callBack, float delay, int count = 1, EPETimeUnit timeUnit = EPETimeUnit.Millisecond) { ChangeTimeWithType(ref delay, timeUnit); //从游戏开始到现在的时间 nowTime = GetUTCMilliseconds(); PETimeTask newTask = new PETimeTask(tid, nowTime + delay, callBack, delay, count); return(ReplaceTask <PETimeTask>(tid, taskTimes, tmpTimes, newTask)); }
/// <summary> /// 替换 不涉及数据增删不用去改 自己改的慢就完蛋 /// </summary> /// <param name="tid"></param> /// <param name="callBack"></param> /// <param name="delay"></param> /// <param name="count"></param> /// <param name="timeUnit"></param> /// <returns></returns> public bool ReplaceTimeTask(int tid, Action <int> callBack, float delay, int count = 1, EPETimeUnit timeUnit = EPETimeUnit.Millisecond) { ChangeTimeWithType(ref delay, timeUnit); //从游戏开始到现在的时间 nowTime = GetUTCMilliseconds(); PETimeTask newTask = new PETimeTask(tid, nowTime + delay, callBack, delay, count); bool isRep = false; for (int i = 0; i < taskTimes.Count; i++) { if (taskTimes[i].tid == tid) { taskTimes[i] = newTask; isRep = true; break; } } if (!isRep) { for (int i = 0; i < tmpTimes.Count; i++) { if (tmpTimes[i].tid == tid) { tmpTimes[i] = newTask; isRep = true; break; } } } return(isRep); }
/// <summary> /// 替换 /// </summary> /// <param name="tid"></param> /// <param name="callBack"></param> /// <param name="delay"></param> /// <param name="count"></param> /// <param name="timeUnit"></param> /// <returns></returns> public bool ReplaceTimeTask(int tid, Action callBack, float delay, int count = 1, EPETimeUnit timeUnit = EPETimeUnit.Millisecond) { return(pt.ReplaceTimeTask(tid, callBack, delay, count, timeUnit)); }
/// <summary> /// 添加一个计时器 /// </summary> /// <param name="callBack"></param> /// <param name="delay"></param> /// <param name="count"></param> /// <param name="timeUnit"></param> /// <returns></returns> public int AddTimeTask(Action callBack, float delay, int count = 1, EPETimeUnit timeUnit = EPETimeUnit.Millisecond) { return(pt.AddTimeTask(callBack, delay, count, timeUnit)); }