Version: 2023.1
LanguageEnglish
  • C#

TerrainData

class in UnityEngine

/

Inherits from:Object

/

Implemented in:UnityEngine.TerrainModule

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Description

The TerrainData class stores heightmaps, detail mesh positions, tree instances, and terrain texture alpha maps.

The Terrain component links to the terrain data and renders it.

Static Properties

AlphamapTextureNameThe name for the Terrain alpha map textures.
HolesTextureNameThe name for the Terrain holes Texture.

Properties

alphamapHeightHeight of the alpha map. (Read only.)
alphamapLayersNumber of alpha map layers.
alphamapResolutionThe size of the alpha map in texels for either the width or the height.
alphamapTextureCountReturns the number of alphamap textures.
alphamapTexturesAlpha map textures used by the Terrain. Used by Terrain Inspector for undo.
alphamapWidthWidth of the alpha map.
baseMapResolutionResolution of the base map used for rendering far patches on the terrain.
boundsThe local bounding box of the TerrainData object.
detailHeightThe resolution of the detail data stored in TerrainData.
detailPatchCountThe number of patches along a terrain tile edge. This is squared to make a grid of patches.
detailPrototypesContains the detail texture/meshes that the Terrain has.
detailResolutionDetail Resolution of the TerrainData.
detailResolutionPerPatchDetail Resolution of each patch. A larger value will decrease the number of batches used by detail objects.
detailScatterModeSee Also: DetailScatterMode
detailWidthThe resolution of the detail data stored in TerrainData.
enableHolesTextureCompressionEnable the Terrain holes Texture compression.
heightmapResolutionThe size of the heightmap in texels for either the width or the height.
heightmapScaleReturns a Vector3 where the x and z components are the size of each heightmap sample (i.e. the space between two neighboring heightmap samples), and the y component is the entire Terrain's height range in world space.
heightmapTextureReturns the heightmap texture.
holesResolutionReturns the Terrain holes resolution for both the data and the Texture.
holesTextureReturns the Terrain holes Texture.
maxDetailScatterPerResThe maximum value of each sample in the detail map of the terrain data.
sizeThe total size in world units of the terrain.
terrainLayersRetrieves the terrain layers used by the current terrain.
treeInstanceCountReturns the number of tree instances.
treeInstancesContains the current trees placed in the terrain.
treePrototypesThe list of tree prototypes available in the inspector.
wavingGrassAmountAmount of waving grass in the terrain.
wavingGrassSpeedSpeed of the waving grass.
wavingGrassStrengthStrength of the waving grass in the terrain.
wavingGrassTintColor of the waving grass that the terrain has.

Public Methods

ComputeDetailCoverageThis function computes and returns the coverage (how many instances fit in a square unit) of a detail prototype, given its index.
ComputeDetailInstanceTransformsThis function computes and returns an array of detail object transforms for the specified patch and the specified prototype. You can use this function to retrieve the exact same transform data the Unity engine uses for detail rendering.
CopyActiveRenderTextureToHeightmapCopies the specified part of the active RenderTexture to the Terrain heightmap texture.
CopyActiveRenderTextureToTextureCopies the specified part of the active RenderTexture to the Terrain texture.
DirtyHeightmapRegionMarks the specified part of the heightmap as dirty.
DirtyTextureRegionMarks the specified part of the Terrain texture as dirty.
GetAlphamapsReturns the alpha map at a position x, y given a width and height.
GetAlphamapTextureReturns the alphamap texture at the specified index.
GetClampedDetailPatchesReturns an array of detail patches, which are each identified by X-Z coordinates. Detail objects in the patches are clamped to the maximum count.
GetDetailLayerReturns a 2D array of the detail object density (i.e. the number of detail objects for this layer) in the specific location.
GetHeightGets the world space height of the Terrain at a certain point x,y without adding the Terrain's world position y.
GetHeightsGets an array of heightmap samples.
GetHolesGets an array of Terrain holes samples.
GetInterpolatedHeightGets an interpolated height at a point x,y. The x and y coordinates are clamped to [0, 1].
GetInterpolatedHeightsGets an array of terrain height values using the normalized x,y coordinates.
GetInterpolatedNormalGet an interpolated normal at a given location.
GetMaximumHeightErrorReturns an array of tesselation maximum height error values per renderable terrain patch. The returned array can be modified and passed to OverrideMaximumHeightError.
GetPatchMinMaxHeightsReturns an array of min max height values for all the renderable patches in a terrain. The returned array can be modified and then passed to OverrideMinMaxPatchHeights.
GetSteepnessGets the gradient of the terrain at point (x,y).
GetSupportedLayersReturns an array of all supported detail layer indices in the area.
GetTreeInstanceGets the tree instance at the specified index. It is used as a faster version of treeInstances[index] as this function doesn't create the entire tree instances array.
IsHoleGets whether a certain point at x,y is a hole.
OverrideMaximumHeightErrorOverride the maximum tessellation height error with user provided values. Note that the overriden values get reset when the terrain resolution is changed and stays unchanged when the terrain heightmap is painted or changed via script.
OverrideMinMaxPatchHeightsOverride the minimum and maximum patch heights for every renderable terrain patch. Note that the overriden values get reset when the terrain resolution is changed and stays unchanged when the terrain heightmap is painted or changed via script.
RefreshPrototypesReloads all the values of the available prototypes (ie, detail mesh assets) in the TerrainData Object.
RemoveDetailPrototypeRemoves the detail prototype at the specified index.
SetAlphamapsAssign all splat values in the given map area.
SetBaseMapDirtyMarks the terrain data as dirty to trigger an update of the terrain basemap texture.
SetDetailLayerSets the detail layer density map.
SetDetailResolutionSets the resolution of the detail map.
SetDetailScatterModeSets the DetailScatterMode.
SetHeightsSets an array of heightmap samples.
SetHeightsDelayLODSets an array of heightmap samples.
SetHolesSets an array of Terrain holes samples.
SetHolesDelayLODSets an array of Terrain holes samples.
SetTerrainLayersRegisterUndoThis function sets the terrainLayers property, and in addition, registers the action to the Editor's undo stack.
SetTreeInstanceSets the tree instance with new parameters at the specified index. However, you cannot change TreeInstance.prototypeIndex and TreeInstance.position. If you change them, the method throws an ArgumentException.
SetTreeInstancesSets the Tree Instance array, and optionally snaps Trees onto the surface of the Terrain heightmap.
SyncHeightmapPerforms synchronization queued by previous calls to CopyActiveRenderTextureToHeightmap and DirtyHeightmapRegion, which makes the height data and LOD data used for tessellation up to date.
SyncTexturePerforms synchronization queued by previous calls to CopyActiveRenderTextureToTexture and DirtyTextureRegion, which makes CPU data of the Terrain textures up to date.

Inherited Members

Properties

hideFlagsShould the object be hidden, saved with the Scene or modifiable by the user?
nameThe name of the object.

Public Methods

GetInstanceIDGets the instance ID of the object.
ToStringReturns the name of the object.

Static Methods

DestroyRemoves a GameObject, component or asset.
DestroyImmediateDestroys the object obj immediately. You are strongly recommended to use Destroy instead.
DontDestroyOnLoadDo not destroy the target Object when loading a new Scene.
FindAnyObjectByTypeRetrieves any active loaded object of Type type.
FindFirstObjectByTypeRetrieves the first active loaded object of Type type.
FindObjectsByTypeRetrieves a list of all loaded objects of Type type.
InstantiateClones the object original and returns the clone.

Operators

boolDoes the object exist?
operator !=Compares if two objects refer to a different object.
operator ==Compares two object references to see if they refer to the same object.