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