private void CreateTask(string taskName, List <string> taskDependent) { DependentTask task = new DependentTask().SetTaskRegion("null").SetTaskName(taskName).SetTaskAction((TaskExecuteCallback callback) => { VeerDebug.Log(" task start : " + taskName); float duration = UnityEngine.Random.Range(1f, 4f); this.StartCoroutine(CoroutineUtils.WaitForSecond(duration, () => { VeerDebug.Log(" task finished : " + taskName + " , duration : " + duration); callback(true, null, null); })); }); if (taskDependent != null) { for (int i = 0; i < taskDependent.Count; i++) { task.AddDependentTask(taskDependent[i]); } } task.RegisterTask(); }