Version: 2023.1

TerrainChangedFlags

enumeration

切换到手册

描述

指示 OnTerrainChanged 回调中的地形更改类型。

使用按位与运算可检测多个更改。

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指示对高度贴图数据的更改。
TreeInstances指示对树数据的更改。
DelayedHeightmapUpdate指示在不计算细节级别的情况下对高度贴图数据的更改。
FlushEverythingImmediately指示对地形进行了更改,并且此更改非常重大,以致于需要刷新和重新创建内部渲染数据。
RemoveDirtyDetailsImmediately指示对细节数据的更改。
HeightmapResolution指示对高度贴图分辨率的更改。
Holes指示对地形孔洞数据的更改。
DelayedHolesUpdate指示对地形孔洞数据的更改,其中不包括 LOD 计算和树木/植被更新。
WillBeDestroyed指示即将销毁 TerrainData 对象。