# SetHeights(int, int, float[,])

> Sets an array of heightmap samples.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.5/script-reference/unityengine.md)
* **Assembly:** UnityEngine.TerrainModule

## SetHeights(int, int, Single\[0:,0:])

```csharp
public void SetHeights(int xBase, int yBase, float[,] heights)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): First x index of heightmap samples to set.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): First y index of heightmap samples to set.**** (\[float\[,]]\(https\://learn.microsoft.com/dotnet/api/system.single)): Array of heightmap samples to set (values range from 0 to 1, array indexed as \[y,x]).

### Remarks

Sets heightmap data using a two dimensional array of heightmap samples. The samples are represented as float values ranging from 0 to 1. The area affected is defined by the array dimensions and starts at xBase and yBase. The heights array is indexed as \[y,x].

This method recomputes all the LOD and vegetation information for the terrain on each call, which can be computationally expensive. In interactive editing scenarios, it may be better to call [TerrainData.SetHeightsDelayLOD](/engine/6000.5/script-reference/unityengine/terraindata/setheightsdelaylod.md) instead, followed by [TerrainData.SyncHeightmap](/engine/6000.5/script-reference/unityengine/terraindata/syncheightmap.md) when the user completes an editing action.
