I’ve been trying to create procedural terrain for a game. I keep getting the error: “ArgumentException: X or Y base out of bounds. Setting up to 4096x4096 while map size is 33x33” when setting my generated height map to the terraindata. Anyone know a fix for this?
void GenerateTerrainData()
{
terrain.terrainData.heightmapResolution = resolution;
terrain.terrainData.baseMapResolution = resolution;
terrain.terrainData.size = new Vector3(length, height, width);
terrain.terrainData.SetHeights(0, 0, GenerateHeights());
}
float[,] GenerateHeights()
{
float[,] heights = new float[length * resolution, width * resolution];
Debug.Log("heights[" + heights.GetLength(0) + "," + heights.GetLength(1) + "]");
for (int x = 0; x < length; x++)
{
for (int y = 0; y < width; y++)
{
switch (heightType)
{
default:
case HeightType.perlin:
heights[x, y] = GeneratePerlinHeight(x);
break;
case HeightType.multiFreqPerlin:
heights[x, y] = GenerateMultiFreqPerlinHeight(x, y);
break;
case HeightType.multiFreqNoise:
heights[x, y] = GenerateMulitFreqNoiseHeight(x);
break;
}
}
}
return heights;
}