/// <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); }
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); }
/// <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); }
/// <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); }
/// <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); }
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); }
/// <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); }
/// <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); } }
/// <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); }
/// <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); }
/// <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); }