public unsafe bool BuildInputPerTile(List <NavMeshBuildInput> inputs) { HeightBounds = default; Tiles.Clear(); TilesToBuild.Clear(); BuildResult = new NavMeshBuildResult(); NormalizeInputHeights(inputs); SetGlobalBounds(inputs); foreach (NavMeshBuildInput input in inputs) { int result = BuildTile(input.TileBounds.Coord, BuildSettings, AgentSettings, input, 1, out NavMeshTile tile); if (result == 0) { Tiles[input.TileBounds.Coord] = tile; BuildResult.TilesBuilt++; } else if (result != 110) { BuildResult.Result = result; return(false); } } BuildResult.Result = 0; return(true); }
public unsafe bool BuildAllFromSingleInput(NavMeshBuildInput single) { HeightBounds = default; Tiles.Clear(); TilesToBuild.Clear(); List <NavMeshBuildInput> inputs = new List <NavMeshBuildInput>() { single }; BuildResult = new NavMeshBuildResult(); NormalizeInputHeights(inputs); SetGlobalBounds(inputs); foreach (NavMeshBuildInput input in inputs) { var tiles = NavMeshBuildUtils.GetOverlappingTiles(BuildSettings, input.TileBounds.Bounds); foreach (var tileCoord in tiles) { int result = BuildTile(tileCoord, BuildSettings, AgentSettings, input, 1, out NavMeshTile tile); if (result == 0) { Tiles[tileCoord] = tile; BuildResult.TilesBuilt++; } else if (result != 110) { BuildResult.Result = result; return(false); } } } BuildResult.Result = 0; return(true); }