Version: 2018.1

TerrainChangedFlags

enumeration

Switch to Manual

Description

Indicate the types of changes to the terrain in OnTerrainChanged callback.

Use bitwise AND to detect multiple changes.

using UnityEngine;

[ExecuteInEditMode] public class DetectTerrainChanges : MonoBehaviour { void OnTerrainChanged(TerrainChangedFlags flags) { if ((flags & TerrainChangedFlags.Heightmap) != 0) { Debug.Log("Heightmap changes"); }

if ((flags & TerrainChangedFlags.DelayedHeightmapUpdate) != 0) { Debug.Log("Heightmap painting"); }

if ((flags & TerrainChangedFlags.TreeInstances) != 0) { Debug.Log("Tree changes"); } } }

The above example shows how you can detect terrain changes by using OnTerrainChanged callback and TerrainChangedFlags enum.

Variables

HeightmapIndicates a change to the heightmap data.
TreeInstancesIndicates a change to the tree data.
DelayedHeightmapUpdateIndicates a change to the heightmap data without computing LOD.
FlushEverythingImmediatelyIndicates that a change was made to the terrain that was so significant that the internal rendering data need to be flushed and recreated.
RemoveDirtyDetailsImmediatelyIndicates a change to the detail data.
WillBeDestroyedIndicates that the TerrainData object is about to be destroyed.