public void DrawMapInEditor() { MapData mapData = GenerateMapData(Vector2.zero); MapDisplay display = FindObjectOfType <MapDisplay>(); if (drawMode == DrawMode.NoiseMap) { display.DrawTexture(TextureGenerator.TextureFromHeightMap(mapData.heightMap)); } else if (drawMode == DrawMode.ColourMap) { display.DrawTexture(TextureGenerator.TextureFromColourMap(mapData.colourMap, mapChunkSize, mapChunkSize)); } else if (drawMode == DrawMode.Mesh) { display.DrawMesh(MeshGenerator.GenerateTerrainMesh(mapData.heightMap, meshHeightMultiplier, meshHeightCurve, editorPreviewLOD), TextureGenerator.TextureFromColourMap(mapData.colourMap, mapChunkSize, mapChunkSize)); if (generateGameObjects) { GenerateGameObjects genGOScript = display.meshRenderer.transform.gameObject.GetComponent <GenerateGameObjects>(); if (genGOScript == null) { genGOScript = display.meshRenderer.transform.gameObject.AddComponent <GenerateGameObjects>(); } genGOScript.seed = seed; genGOScript.StartGenerateObjects(); genGOScript.offset = offset; genGOScript.levelOfDetail = editorPreviewLOD; genGOScript.mapData = mapData; genGOScript.genClouds = generateClouds; } } else if (drawMode == DrawMode.Falloff) { display.DrawTexture(TextureGenerator.TextureFromHeightMap(FalloffGenerator.GenerateFalloffMap(mapChunkSize))); } if (generateWater) { bool genNewWater = true; foreach (Transform child in gameObject.transform) { if (child.tag == "Water") { genNewWater = false; } } if (genNewWater) { EndlessTerrain endTer = GetComponent <EndlessTerrain>(); GameObject waterIns = GameObject.Instantiate(endTer.waterPlane, new Vector3(0, -0.22f * EndlessTerrain.scale, 0), Quaternion.identity); waterIns.transform.parent = gameObject.transform; waterIns.AddComponent <DisableOnStartup>(); } } }
void Awake() { mapGen = GameObject.Find("Map Generator").GetComponent <MapGenerator>(); biomes = FindObjectOfType <Biomes>(); endlessTerrainScript = GameObject.Find("Map Generator").GetComponent <EndlessTerrain>(); chunkSize = MapGenerator.mapChunkSize; heights = Noise.GenerateNoiseMap(chunkSize * mapSize, chunkSize * mapSize, mapGen.seed, mapGen.noiseScale, mapGen.octaves, mapGen.persistance, mapGen.lacunarity, Vector2.zero + mapGen.offset, mapGen.normalizeMode); ScaleHeights(); moisture = biomes.GenerateMoisture(); }
private void Awake() { visibleTerrainChunks = new List <TerrainChunk>(); terrainChunkDictionary = new Dictionary <Vector2, TerrainChunk>(); instance = this; startChunkCountSetup = 0; mapGenerator = FindObjectOfType <MapGenerator>(); scenary = FindObjectOfType <Scenary>(); }
void Awake() { if (instance != null) { if (instance != this) { Destroy(gameObject); } } else { instance = this; } }
public static void PaintTilemap(Tilemap tilemap, float[,] heightMap, TilemapBiomeData tilemapBiomeData, TilemapType tilemapType) { MapGenerator mapGenerator = MapGenerator.instance; EndlessTerrain endlessTerrain = EndlessTerrain.instance; Vector3Int tileCoord; for (int x = tilemap.cellBounds.xMin; x < tilemap.cellBounds.xMax; x++) { for (int y = tilemap.cellBounds.yMin; y < tilemap.cellBounds.yMax; y++) { tileCoord = new Vector3Int(x, y, 0); tilemap.SetTile(tileCoord, DetermineTile(tilemap, heightMap, tileCoord, tilemapBiomeData, mapGenerator, tilemapType)); } } }
// Use this for initialization void Start() { terrainTrail = GetComponent <TerrainTrail>(); EndlessTerrain endlessTerrain = FindObjectOfType <EndlessTerrain>(); endlessTerrain.doneLoadingLevel += StartMouseTerrainTrail; SendSliderValue sendHeightSliderValue = GameObject.FindGameObjectWithTag(Tags.HeightSlider.ToString()).GetComponent <SendSliderValue>(); sendHeightSliderValue.OnValueChange += ChangeTrailHeight; terrainTrail.lineHeight = (int)sendHeightSliderValue.GetSliderValue(); SendSliderValue sendWidthSliderValue = GameObject.FindGameObjectWithTag(Tags.WidthSlider.ToString()).GetComponent <SendSliderValue>(); sendWidthSliderValue.OnValueChange += ChangeTrailWidth; terrainTrail.lineWidth = (int)sendWidthSliderValue.GetSliderValue(); }
public TerrainChunk(EndlessTerrain endlessTerrain, TerrainGenerator terrainGenerator, TerrainSettings terrainSettings, Vector2Int chunkCoord, Material material, Transform parent) { this.endlessTerrain = endlessTerrain; gameObject = new GameObject("TerrainChunk"); gameObject.layer = LayerMask.NameToLayer("Terrain"); var meshObj = new GameObject("Mesh"); meshObj.transform.SetParent(gameObject.transform); meshObj.layer = LayerMask.NameToLayer("Terrain"); renderer = meshObj.AddComponent <MeshRenderer>(); meshFilter = meshObj.AddComponent <MeshFilter>(); meshCollider = meshObj.AddComponent <MeshCollider>(); renderer.material = material; Vector2 offset = Vector2.Scale(chunkCoord, terrainSettings.unitSize); terrainGenerator.RequestTerrainData(terrainSettings, offset, ReceiveTerrainData); gameObject.transform.parent = parent; gameObject.transform.localPosition = offset.ToVector3Z() * endlessTerrain.Scale; meshObj.transform.localScale = Vector3.one * endlessTerrain.Scale; }
void OnEnable() { endlessTerrain = GetComponent <EndlessTerrain>(); detailLevels[detailLevels.Length - 1].visibleDstThreshold = endlessTerrain.MaxViewDistance; }
void OnEnable() { endlessTerrain = GetComponent <EndlessTerrain>(); endlessTerrain.chunkBeingDestroyed += DestroyFarAwayChunk; }
void Start() { endlessTerrain = GetComponent <EndlessTerrain>(); GetComponent <ChildsClearer>().ClearAllChilds(transform); }