예제 #1
0
        public static void CreateGridNavigation(NavigationGraph p_navigationGraph, int XNumber, int ZNumber)
        {
            CreateGridNavigationStructure(XNumber, ZNumber, out Dictionary <int, Vector3> l_navigationNodes, out List <GridNavigationLink> l_navigationLinks);

            List <NavigationNode> l_instancedNavigationNodes = new List <NavigationNode>(l_navigationNodes.Count);

            for (int i = 0; i < l_navigationNodes.Count; i++)
            {
                NavigationNode l_instancedNavigationNode = NavigationGraph.instanciateAndAddNode(p_navigationGraph);
                l_instancedNavigationNode.LocalPosition = l_navigationNodes[i];
                l_instancedNavigationNodes.Add(l_instancedNavigationNode);
            }

            foreach (GridNavigationLink l_link in l_navigationLinks)
            {
                NavigationGraph.createLinkBetween(p_navigationGraph, l_instancedNavigationNodes[l_link.StartNode], l_instancedNavigationNodes[l_link.EndNode],
                                                  math.distance(l_instancedNavigationNodes[l_link.StartNode].LocalPosition, l_instancedNavigationNodes[l_link.EndNode].LocalPosition));
            }
        }