public void ContinueTaks(TaskIdentity taskIdentity) { if (taskIdentity.IsValid) { mTaskDic[taskIdentity.Id].IsPause = false; } }
public TaskIdentity AddTask(float delayTime, TaskEventHandler handler, int triggerTimes = 1, float deltaTime = 0) { System.Diagnostics.Debug.Assert(delayTime > 0, "DelayTime Invalid"); System.Diagnostics.Debug.Assert(triggerTimes > -1, "TriggerTimes Invalid"); System.Diagnostics.Debug.Assert(deltaTime > 0, "DeltaTime Invalid"); int id = UnityEngine.Random.Range(int.MinValue, int.MaxValue); while (mTaskDic.ContainsKey(id)) { id = UnityEngine.Random.Range(int.MinValue, int.MaxValue); } TaskIdentity taskIdentity = new TaskIdentity(); taskIdentity.Id = id; Task task = new Task(); task.Identity = taskIdentity; task.ActivateTime = (ulong)(Factor * (mCurrentTime + delayTime)); task.Handler = handler; task.DeltaTime = deltaTime; task.TriggerTimes = triggerTimes; mTaskDic.Add(task.Identity.Id, task); if (task.TriggerTimes == 0) { DelTask(taskIdentity); } return(taskIdentity); }
public void PauseTask(TaskIdentity taskIdentity) { if (taskIdentity.IsValid) { mTaskDic[taskIdentity.Id].IsPause = true; } }
public void DelTask(TaskIdentity taskIdentity) { if (taskIdentity.IsValid) { taskIdentity.IsValid = false; if (mTaskNeedAdd.Contains(mTaskDic[taskIdentity.Id])) { mTaskNeedAdd.Remove(mTaskDic[taskIdentity.Id]); } else if (!mTaskNeedDel.Contains(mTaskDic[taskIdentity.Id])) { mTaskNeedDel.Add(mTaskDic[taskIdentity.Id]); } mTaskDic.Remove(taskIdentity.Id); } }