TerrainChangedFlags
перечисление
Описание
Укажите типы изменений рельефа в обратном вызове OnTerrainChanged.
Используйте битовый AND для обнаружения нескольких изменений.
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"); } } }
Пример выше показывает, как обнаруживать изменения ландшафта с помощью обратного вызова OnTerrainChanged и перечисления TerrainChangedFlags.
Свойства
| Свойство | Описание |
|---|---|
| Heightmap | Указывает на изменение данных heightmap. |
| TreeInstances | Указывает на изменение данных дерева. |
| DelayedHeightmapUpdate | Указывает на изменение данных heightmap без расчета LOD. |
| FlushEverythingImmediately | Указывает, что в ландшафте произошло настолько значимое изменение, что внутренние данные рендеринга нужно сбросить и создать заново. |
| RemoveDirtyDetailsImmediately | Указывает на изменение в подробных данных. |
| HeightmapResolution | Указывает на изменение разрешения высотной карты. |
| Holes | Указывает на изменение данных о отверстиях в местности. |
| DelayedHolesUpdate | Указывает на изменение данных о отверстиях в местности, которые не включают расчеты LOD и обновления деревьев/растительности. |
| WillBeDestroyed | Показывает, что объект TerrainData вскоре будет уничтожен. |