/// <summary> /// 更换定时任务 /// </summary> public bool ReplaceTimerTask(int tid, Action callback, float destTime, float delay, int count = 1, PETimeType timeType = PETimeType.Millisecond) { if (timeType != PETimeType.Millisecond) { switch (timeType) { case PETimeType.Second: destTime = destTime * 1000; break; case PETimeType.Minute: destTime = destTime * 1000 * 60; break; case PETimeType.Hour: destTime = destTime * 1000 * 60 * 60; break; case PETimeType.Day: destTime = destTime * 1000 * 60 * 60 * 24; break; default: Debug.Log("Add Time Type Error!"); break; } } destTime = Time.realtimeSinceStartup * 1000 + destTime; PETimerTask newTask = new PETimerTask(callback, destTime, delay, count, tid); bool isRep = false; for (int i = 0; i < timerTasks.Count; i++) { if (tid == timerTasks[i].tid) { timerTasks[i] = newTask; isRep = true; break; } } if (!isRep) { for (int i = 0; i < tempTimerTasks.Count; i++) { if (tid == tempTimerTasks[i].tid) { tempTimerTasks[i] = newTask; isRep = true; break; } } } return(isRep); }
/// <summary> /// 添加时间任务 /// </summary> /// <param name="callback">等待一段时间后需要执行的方法</param> /// <param name="destTime">第一次执行等待的时间</param> /// <param name="delay">(第二次执行后)重复执行等待的时间</param> /// <param name="count">重复执行的次数,0为无限重复执行</param> /// <param name="timeType">添加的时间类型,默认毫秒为单位,用秒需要乘1000</param> /// <returns></returns> public int AddTimerTask(Action callback, float destTime, float delay, int count = 1, PETimeType timeType = PETimeType.Millisecond) { if (timeType != PETimeType.Millisecond) { switch (timeType) { case PETimeType.Second: destTime = destTime * 1000; break; case PETimeType.Minute: destTime = destTime * 1000 * 60; break; case PETimeType.Hour: destTime = destTime * 1000 * 60 * 60; break; case PETimeType.Day: destTime = destTime * 1000 * 60 * 60 * 24; break; default: Debug.Log("Add Time Type Error!"); break; } } int tid = GetID(); destTime = Time.realtimeSinceStartup * 1000 + destTime; PETimerTask timerTask = new PETimerTask(callback, destTime, delay, count, tid); tempTimerTasks.Add(timerTask); idList.Add(tid); return(tid); }