Unity代码动态控制terrain地形草的大小

/// <summary>
/// 设置terrain地形的某一个草贴图的宽高,用于表现草地的生长过程
/// </summary>
/// <param name="terrain">地形</param>
/// <param name="grassIndex">草在地形中的次序</param>
/// <param name="grassMinMaxHeightWidth">x:最小宽度 y:最小高度 z:最大宽度 w:最大高度</param>
/// <param name="percent">从0趋近目标大小的百分比</param>
public static void SetGrass(Terrain terrain, int grassIndex,Vector4 grassMinMaxHeightWidth,float percent)
{
DetailPrototype[] detailPrototypes = terrain.terrainData.detailPrototypes;

detailPrototypes[grassIndex].minWidth = Mathf.Lerp(0, grassMinMaxHeightWidth.x, percent);
detailPrototypes[grassIndex].minHeight = Mathf.Lerp(0, grassMinMaxHeightWidth.y, percent);
detailPrototypes[grassIndex].maxWidth = Mathf.Lerp(0, grassMinMaxHeightWidth.z, percent);
detailPrototypes[grassIndex].maxHeight = Mathf.Lerp(0, grassMinMaxHeightWidth.w, percent);
terrain.terrainData.detailPrototypes = detailPrototypes;
}

posted @ 2024-08-13 16:02  SummerTrainnn  阅读(14)  评论(0编辑  收藏  举报