public void AddEdge(NavmeshEdge edge) { for (int i = 0; i < edges.Length; i++){ if (edges[i] == null){ edges[i] = edge; return; } else if (i == edges.Length - 1){ Debug.LogError("More than 10 NavmeshEdges connected to one NavmeshVertex!"); } } }
public static NavmeshPolygon Create(NavmeshEdge[] edges) { GameObject navmeshPolygonGO = new GameObject("Navmesh Polygon"); navmeshPolygonGO.tag = "NavmeshPolygon"; navmeshPolygonGO.AddComponent("NavmeshPolygon"); NavmeshPolygon navmeshPolygon = (NavmeshPolygon)navmeshPolygonGO.GetComponent("NavmeshPolygon"); navmeshPolygon.edges = edges; foreach (NavmeshEdge edge in edges){ edge.AddPolygon(navmeshPolygon); } navmeshPolygon.ResetPosition(); return navmeshPolygon; }
private static void CreatePolygon() { if (edgeSelection.Count < 3){ Debug.Log("Select at least 3 Navmesh Vertices (by using the Select Navmesh Vertex command) before creating the Navmesh Polygon!"); return; } else { NavmeshEdge[] edges = new NavmeshEdge[edgeSelection.Count]; for (int i = 0; i < edgeSelection.Count; i++){ edges[i] = (NavmeshEdge)edgeSelection[i]; if (edges[i] == null){ Debug.LogError("Invalid selection for nav mesh creation!"); } } NavmeshPolygon.Create(edges); foreach (NavmeshEdge edge in edgeSelection){ edge.SetActivated(false); } } }