public void Update() { if (mTaskManager == null) { // Give an error in this case. Debug.LogError("Called update on build processor after processor disposal"); return; } for (int i = mControllers.Count - 1; i >= 0; i--) { BuildController controller = mControllers[i]; NavmeshBuild build = controller.Build; NavmeshBuild selected = BuildSelector.Instance.Selected; if (!build || build.BuildType != NavmeshBuildType.Advanced || (build != selected && !controller.BuildIsActive)) { // Build component has been destroyed, is no longer advanced, or is // inactive and not selected. Get rid of it. controller.Exit(); mControllers.RemoveAt(i); } else { controller.Update(); } } }
private void HandleOnSelect(NavmeshBuild build) { if (!build || Contains(build)) return; BuildController controller = new BuildController(build, mTaskManager); if (controller.Enter()) mControllers.Add(controller); else Debug.LogError("Failed to add controller for build: " + build); }