void Awake() { drawerComponent = GetComponent <MeshBuilderDrawerComponent>(); dataExtents = new Extents(16, 4, 16); dataVolume = new DataVolume(dataExtents); FillData(dataVolume); var groundMesher = new TileMesher3D(); groundMesher.Init(dataVolume, 0, palette, cellSize, new TileMesher3D.Settings() { filledBoundaries = Tile.Direction.None, skipDirections = Tile.Direction.YAxis, }); Add(groundMesher, ground); if (useGroundNormalAlignment) { // builders[builders.Count - 1].AddAligner(cellSize); } var topGroundMesher = new GridMesher(); topGroundMesher.Init(dataVolume, GroundIndex, cellSize, 3, GridMesher.UVMode.Normalized); topGroundMesher.InitHeightMapScaleFromHeightAvgOffset(groundHeightMap, groundMaxHeight); Add(topGroundMesher, grass); var waterMesher = new GridMesher(); waterMesher.Init(dataVolume, WaterIndex, cellSize, 1, GridMesher.UVMode.NoScaling, new float3(0, -0.2f, 0)); Add(waterMesher, water); var rockMesher = new TileMesher3D(); rockMesher.Init(dataVolume, 1, palette, cellSize); Add(rockMesher, rock); foreach (var drawer in drawerComponent.Drawers) { drawer.StartBuilder(); } StartCoroutine(CompleteMesh()); }
void Awake() { drawerComponent = GetComponent <MeshBuilderDrawerComponent>(); dataExtents = new Extents(16, 4, 16); dataVolume = new DataVolume(dataExtents); FillData(dataVolume); var walkwayMesher = new TileMesher2D(); walkwayMesher.Init(dataVolume, 0, WalkwayFill, walkwayTheme, cellSize, new TileMesher2D.Settings { centerRandomRotation = true }); Add(walkwayMesher, walkway); var walkwayBgMesher = new GridMesher(); walkwayBgMesher.Init(dataVolume, WalkwayFill, cellSize, 3, GridMesher.UVMode.Normalized, new float3(0, -1f, 0)); walkwayBgMesher.InitHeightMapScaleFromHeightAvgOffset(groundHeightMap, groundMaxHeight); Add(walkwayBgMesher, walkwayBg); var waterMesher = new GridMesher(); waterMesher.Init(dataVolume, WaterFill, cellSize, 1, GridMesher.UVMode.NoScaling, new float3(0, -1.2f, 0)); Add(waterMesher, water); var wallMesher = new TileMesher2D(); wallMesher.Init(dataVolume, 0, WallFill, wallTheme, cellSize, new TileMesher2D.Settings() { emptyBoundaries = Tile.Direction.None }); Add(wallMesher, wall); foreach (var drawer in drawerComponent.Drawers) { drawer.StartBuilder(); } }