private void Awake() { borderedChunkSize = mapChunkSize + 2; plainsHeight /= terrainData.uniformScale; mountainsHeight /= terrainData.uniformScale; if (terrainData.useFalloff) { falloffMap = MaskLib.Falloff(borderedChunkSize); } if (textureData != null) { textureData.ApplyToMaterial(terrainMaterial); } }
public float[,] GenerateMapData(Vector2 center, float preferedHeight, float preferedHeightVariance) { float[,] noiseMap = MaskLib.Perlin(borderedChunkSize, borderedChunkSize, noiseData.seed, noiseData.scale, noiseData.octaves, noiseData.persistence, noiseData.lacunarity, center + noiseData.offset); for (int y = 0; y < borderedChunkSize; y++) { for (int x = 0; x < borderedChunkSize; x++) { if (terrainData.useFalloff) { noiseMap[x, y] = Mathf.Clamp01(noiseMap[x, y] - falloffMap[x, y]); } } } textureData.UpdateMeshHeights(terrainMaterial, terrainData.minHeight, terrainData.maxHeight); return(noiseMap); }