// Update is called once per frame void Update() { if (mapGenState == MapGen.terrain) { Texture2D featureMap; foreach (NoiseMap noiseMap in noiseMaps) { noiseMap.offSet = new Vector2Int(Random.Range(0, 1000), Random.Range(0, 1000)); CalcNoise(noiseMap); } featureMap = shapeGenerator.GenerateClipMap(); shapeGenerator.GenerateLake(featureMap, 3); shapeGenerator.GenerateForests(featureMap, 7); noiseTex = new Texture2D(gridX, gridZ); CombineTextures(noiseTex, noiseMaps); ClipTexture(noiseTex, featureMap, Color.white); GenHexGrid(gridX, gridY, gridZ); CombineMeshes(20, 20); navMesh.BuildNavMesh(); FillDoodads(featureMap); CalcEdgeHexes(25); SpreadOutterEdges(5); Vector3 camPos = GetHexPosition((int)(gridX / 2), (int)(gridZ / 2)); camPos.y = 5f; camHandle.transform.position = camPos; mapGenState = MapGen.terrainCon; HexHighlighter.CreateGrid(gridX, gridZ, highlightFab, highlighters); ShowEdgeHexes(); if (debug) { Vector3 goalPos = Vector3.zero; while (goalPos == Vector3.zero) { Vector2Int gridPos = Vector2Int.zero; gridPos.x = Random.Range(0, gridX - 1); gridPos.y = Random.Range(0, gridZ - 1); if (GetHex(gridPos.x, gridPos.y) != null) { goalPos = GetHexPosition(gridPos); } } GameObject debugGoal = new GameObject(); debugGoal.transform.position = goalPos; MobLister.MakeModGrid(gridX, gridZ); pathKeeper.GeneratePath(PathType.normal, TerrainGen.GetGridPosition(debugGoal.transform.position)); PathKeeper.goal = debugGoal.transform.position; mapGenState = MapGen.done; terrainGenerated = true; MobSpawner.GetSpawners()[0].MakeReady(debugGoal); } // // } else if (mapGenState == MapGen.pathing) { MobLister.MakeModGrid(gridX, gridZ); pathKeeper.GeneratePath(PathType.normal, TerrainGen.GetGridPosition(goal.transform.position)); mapGenState = MapGen.done; terrainGenerated = true; MobSpawner.GetSpawners()[0].MakeReady(goal); } }