Пример #1
0
        /// <summary>
        /// 添加一个新任务
        /// </summary>
        public CoroutineTask AddTask(IEnumerator ienumer, Action <bool> callBack = null, object bindObject = null, bool autoStart = true)
        {
            CoroutineTask task = new CoroutineTask(ienumer, callBack, bindObject, autoStart);

            AddTask(task);
            return(task);
        }
Пример #2
0
        public CoroutineTask WaitSecondTodo(Action <bool> callBack, float waitTime, object bindObject = null)
        {
            IEnumerator   ienumer = _do_wait_to_do(waitTime);
            CoroutineTask task    = new CoroutineTask(ienumer, callBack, bindObject);

            AddTask(task);
            return(task);
        }
Пример #3
0
        /// <summary>
        /// 当满足条件循环动作
        /// </summary>
        public CoroutineTask LoopTodoByCondition(Action call_back, float interval,
                                                 Func <bool> predicates, object bind_object = null, float start_time = 0)
        {
            IEnumerator   ienumer = _do_loop_by_condition(interval, predicates, call_back, start_time);
            CoroutineTask task    = new CoroutineTask(ienumer, null, bind_object);

            AddTask(task);
            return(task);
        }
Пример #4
0
        /// <summary>
        /// 每帧进行循环
        /// </summary>
        public CoroutineTask LoopByEveryFrame(Action call_back, int loop_time = -1
                                              , object bind_object            = null, float delay_time = 0)
        {
            IEnumerator   ienumer = _do_loop_by_every_frame(loop_time, call_back, delay_time);
            CoroutineTask task    = new CoroutineTask(ienumer, null, bind_object);

            AddTask(task);
            return(task);
        }
Пример #5
0
        /// <summary>
        /// 间隔时间进行多次动作
        /// </summary>
        public CoroutineTask LoopTodoByTime(Action call_back, float interval
                                            , int loop_count, object bind_object = null, float delay_time = 0)
        {
            IEnumerator   ienumer = _do_loop_by_time(interval, call_back, loop_count, delay_time);
            CoroutineTask task    = new CoroutineTask(ienumer, null, bind_object);

            AddTask(task);
            return(task);
        }
Пример #6
0
        public void _re_start(string task_name)
        {
            if (!_taskList.ContainsKey(task_name))
            {
                LogManager.Error("重新开始任务,不存在该任务[{0}]", task_name);
                return;
            }
            CoroutineTask task = _taskList[task_name];

            Stop(task_name);
            AddTask(task);
        }
Пример #7
0
 /// <summary>
 /// 添加一个新任务
 /// </summary>
 public CoroutineTask AddTask(CoroutineTask task)
 {
     if (_taskList.ContainsKey(task.Name))
     {
         LogManager.Error("添加新任务,任务[{0}]重名!", task.Name);
         _re_start(task.Name);
     }
     else
     {
         _taskList.Add(task.Name, task);
     }
     return(task);
 }
Пример #8
0
 /// <summary>
 /// 添加一个新任务
 /// </summary>
 public void AddTask(string taskName, IEnumerator ienumer, Action <bool> callBack = null, object bindObject = null, bool autoStart = true)
 {
     if (_taskList.ContainsKey(taskName))
     {
         LogManager.Error("添加新任务,任务[{0}]重名!", taskName);
         _re_start(taskName);
     }
     else
     {
         CoroutineTask task = new CoroutineTask(taskName, ienumer, callBack, bindObject, autoStart);
         _taskList.Add(taskName, task);
     }
 }
Пример #9
0
        /// <summary>
        /// 当条件成立时等待
        /// </summary>
        public CoroutineTask WaitWhileTodo(Action callBack, Func <bool> conditions, object bindObject = null)
        {
            Action <bool> callBack2 = (bo) =>
            {
                if (bo)
                {
                    callBack();
                }
            };
            CoroutineTask task = new CoroutineTask(_do_wait_while(conditions), callBack2, bindObject);

            AddTask(task);
            return(task);
        }
Пример #10
0
        /// <summary>
        /// 等待一段时间再执行回调
        /// </summary>
        public CoroutineTask WaitSecondTodo(Action callBack, float waitTime, object bindObject = null)
        {
            Action <bool> callBack2 = (bo) =>
            {
                if (bo)
                {
                    callBack();
                }
            };
            CoroutineTask task = new CoroutineTask(_do_wait_to_do(waitTime), callBack2, bindObject);

            AddTask(task);
            return(task);
        }
Пример #11
0
        /// <summary>
        /// 等到下一帧
        /// </summary>
        public CoroutineTask WaitFrameEnd(Action callBack, object bindObject = null)
        {
            Action <bool> callBack2 = (bo) =>
            {
                if (bo)
                {
                    callBack();
                }
            };
            CoroutineTask task = new CoroutineTask(
                _do_wait_frame_end_to_do(),
                callBack2, bindObject);

            AddTask(task);
            return(task);
        }