private void GenerateNoise() { var seedX = Random.Range(0, 1000); var seedY = Random.Range(0, 1000); for (int x = 0; x < BoardSize; x++) { for (int y = 0; y < BoardSize; y++) { float amplitude = 1; float frequency = 1; float noiseHeight = 0; for (int o = 0; o < Octaves; o++) { float sampleX = (seedX + x) / NoiseScale * frequency; float sampleY = (seedY + y) / NoiseScale * frequency; float perlinValue = Mathf.PerlinNoise(sampleX, sampleY) * 2 - 1; noiseHeight += perlinValue * amplitude; amplitude *= persistance; frequency *= lacunarity; } var transformed = (int)(noiseHeight * 10); board[x, y] = new TileGenData(); board[x, y].Height = transformed; } } }
private void InitializeBoard() { board = new TileGenData[BoardSize, BoardSize]; }