Exemple #1
0
        /** Called when a NavmeshCut or NavmeshAdd is enabled */
        void HandleOnEnableCallback(GNavmeshClipper obj)
        {
            var graphSpaceBounds = obj.GetBounds(handler.graph.transform);
            var touchingTiles    = handler.graph.GetTouchingTilesInGraphSpace(graphSpaceBounds);

            handler.gcuts.Add(obj, touchingTiles);
            obj.ForceUpdate();
        }
Exemple #2
0
 void OnDisable()
 {
     if (handler != null)
     {
         GNavmeshClipper.RemoveEnableCallback(HandleOnEnableCallback, HandleOnDisableCallback);
         forcedReloadRects.Clear();
         handler.graph.OnRecalculatedTiles -= OnRecalculatedTiles;
     }
 }
Exemple #3
0
        /** Called when a NavmeshCut or NavmeshAdd is disabled */
        void HandleOnDisableCallback(GNavmeshClipper obj)
        {
            var root = handler.gcuts.GetRoot(obj);

            if (root != null)
            {
                forcedReloadRects.Add(root.previousBounds);
                handler.gcuts.Remove(obj);
            }
            lastUpdateTime = float.NegativeInfinity;
        }
Exemple #4
0
        /** Use the specified handler, will create one at start if not called */
        public void UseSpecifiedHandler(TileHandler newHandler)
        {
            if (!enabled)
            {
                throw new System.InvalidOperationException("TileHandlerHelper is disabled");
            }

            if (handler != null)
            {
                GNavmeshClipper.RemoveEnableCallback(HandleOnEnableCallback, HandleOnDisableCallback);
                handler.graph.OnRecalculatedTiles -= OnRecalculatedTiles;
            }

            handler = newHandler;

            if (handler != null)
            {
                GNavmeshClipper.AddEnableCallback(HandleOnEnableCallback, HandleOnDisableCallback);
                handler.graph.OnRecalculatedTiles += OnRecalculatedTiles;
            }
        }