/** Removes the specified graph from the #graphs array and Destroys it in a safe manner. * To avoid changing graph indices for the other graphs, the graph is simply nulled in the array instead * of actually removing it from the array. * The empty position will be reused if a new graph is added. * * \returns True if the graph was sucessfully removed (i.e it did exist in the #graphs array). False otherwise. * * \see NavGraph.SafeOnDestroy * * \version Changed in 3.2.5 to call SafeOnDestroy before removing * and nulling it in the array instead of removing the element completely in the #graphs array. * */ public bool RemoveGraph(NavGraph graph) { //Safe OnDestroy is called since there is a risk that the pathfinding is searching through the graph right now, //and if we don't wait until the search has completed we could end up with evil NullReferenceExceptions graph.SafeOnDestroy(); int i = 0; for (; i < graphs.Length; i++) { if (graphs[i] == graph) { break; } } if (i == graphs.Length) { return(false); } graphs[i] = null; UpdateShortcuts(); return(true); }
/** Removes the specified graph from the #graphs array and Destroys it in a safe manner */ public void RemoveGraph(NavGraph graph) { List <NavGraph> ls = new List <NavGraph> (graphs); ls.Remove(graph); graphs = ls.ToArray(); //Safe OnDestroy is called since there is a risk that the pathfinding is searching through the graph right now, and if we don't wait until the search has completed we could end up with evil NullReferenceExceptions graph.SafeOnDestroy(); }
public bool RemoveGraph(NavGraph graph) { graph.SafeOnDestroy(); int i; for (i = 0; i < this.graphs.Length; i++) { if (this.graphs[i] == graph) { break; } } if (i == this.graphs.Length) { return(false); } this.graphs[i] = null; this.UpdateShortcuts(); return(true); }
/** Removes the specified graph from the #graphs array and Destroys it in a safe manner. * To avoid changing graph indices for the other graphs, the graph is simply nulled in the array instead * of actually removing it from the array. * The empty position will be reused if a new graph is added. * * \returns True if the graph was sucessfully removed (i.e it did exist in the #graphs array). False otherwise. * * \see NavGraph.SafeOnDestroy * * \version Changed in 3.2.5 to call SafeOnDestroy before removing * and nulling it in the array instead of removing the element completely in the #graphs array. * */ public bool RemoveGraph (NavGraph graph) { //Safe OnDestroy is called since there is a risk that the pathfinding is searching through the graph right now, //and if we don't wait until the search has completed we could end up with evil NullReferenceExceptions graph.SafeOnDestroy (); int i=0; for (;i<graphs.Length;i++) if (graphs[i] == graph) break; if (i == graphs.Length) { return false; } graphs[i] = null; UpdateShortcuts (); return true; }
/** Removes the specified graph from the #graphs array and Destroys it in a safe manner */ public void RemoveGraph(NavGraph graph) { List<NavGraph> ls = new List<NavGraph> (graphs); ls.Remove (graph); graphs = ls.ToArray (); //Safe OnDestroy is called since there is a risk that the pathfinding is searching through the graph right now, //and if we don't wait until the search has completed we could end up with evil NullReferenceExceptions graph.SafeOnDestroy (); }