SafeOnDestroy() public method

public SafeOnDestroy ( ) : void
return void
示例#1
0
        /** 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);
        }
示例#2
0
        /** 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();
        }
示例#3
0
        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);
        }
示例#4
0
		/** 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;
		}
示例#5
0
        /** 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 ();
        }