- Home /
Question by
WinterboltGames · May 16, 2018 at 01:39 PM ·
errorterrainerror messageterraindata
**Trying to access out-of-bounds terrain height information** When calling TerrainData.GetHeights();
Hello Community,
As the title says I'm getting this error -> Trying to access out-of-bounds terrain height information
When calling TerrainData.GetHeights();
Here's my code...
public void RaiseTerrain(Terrain terrain, Vector3 point, int brushSize, float opacity)
{
var terrainData = terrain.terrainData;
var terrainSize = terrainData.size;
var terrainWidth = terrainData.heightmapWidth;
var terrainHeight = terrainData.heightmapHeight;
var offset = brushSize / 2;
var tempCoordinates = (point - terrain.GetPosition());
var coordinates = new Vector3
(
(tempCoordinates.x / terrainSize.x),
(tempCoordinates.y / terrainSize.y),
(tempCoordinates.z / terrainSize.z)
);
var relativeCoordinates = new Vector3(coordinates.x * terrainWidth, 0f, coordinates.z * terrainHeight);
var terrainX = ((int)relativeCoordinates.x - offset);
var terrainZ = ((int)relativeCoordinates.z - offset);
terrainX = Mathf.Clamp(terrainX, 0, terrainWidth);
terrainZ = Mathf.Clamp(terrainZ, 0, terrainHeight);
var heights = terrainData.GetHeights(terrainX, terrainZ, brushSize, brushSize);
for (int xx = 0; xx < brushSize; xx++)
{
for (int yy = 0; yy < brushSize; yy++)
{
heights[xx, yy] += (opacity * Time.deltaTime);
}
}
terrainData.SetHeights(terrainX, terrainZ, heights);
}
Comment