private IEnumerator TaskHandler(IUnitTask task) { yield return(task?.BeginTask()); taskCoroutine = null; currentTask = null; }
private void InvokeFirstTask() { if (unitTasks.Count > 0) { IUnitTask unitTask = unitTasks[0]; unitTasks.RemoveAt(0); InvokeTask(unitTask); } }
public void AbordTask() { if (currentTask == null) { return; } currentTask.AbordTask(); unit.StopCoroutine(taskCoroutine); currentTask = null; }
private void InvokeTask(IUnitTask task) { currentTask = task; taskCoroutine = unit.StartCoroutine(TaskHandler(task)); }