public void RemoveTask(STask task) { int index = tasks.IndexOf(task); if (index >= 0) { tasks[index] = tasks[tasks.Count - 1]; tasks.RemoveAt(tasks.Count - 1); } }
private static void AddTask(STask task, UpdateType updateType) { if (updateType == UpdateType.Update) { _updateTasks.AddTask(task); } else if (updateType == UpdateType.LateUpdate) { _lateUpdateTasks.AddTask(task); } else { _fixedUpdateTasks.AddTask(task); } }
public void AddTask(STask task) { if (_tasksAdded == tasks.Length) { IncreaseArraySize(); } for (int i = 0; i < tasks.Length; i++) { if (tasks[i] == null) { tasks[i] = task; _tasksAdded++; return; } } }
public void Update(float deltaTime) { for (int i = 0; i < tasks.Count; i++) { STask task = tasks[i]; while (task.isDone && i < tasks.Count) { task = tasks[i] = tasks[tasks.Count - 1]; tasks.RemoveAt(tasks.Count - 1); } if (!task.isDone) { task.Update(deltaTime); } } }
public void Update(float deltaTime) { for (int i = 0; i < tasks.Length; i++) { STask task = tasks[i]; if (task != null) { if (!task.isDone) { task.Update(deltaTime); } else { tasks[i] = null; } } } }
public void AddTask(STask task) { tasks.Add(task); }