Esempio n. 1
0
 public void ContinueTaks(TaskIdentity taskIdentity)
 {
     if (taskIdentity.IsValid)
     {
         mTaskDic[taskIdentity.Id].IsPause = false;
     }
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 public void PauseTask(TaskIdentity taskIdentity)
 {
     if (taskIdentity.IsValid)
     {
         mTaskDic[taskIdentity.Id].IsPause = true;
     }
 }
Esempio n. 4
0
 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);
     }
 }