float value;
IEnumerator SmoothLerp(float start, float end, float duration)
{
float time = 0;
while (time < duration) {
float t = time / duration;
value = Mathf.Lerp(start, end, t); // Use value to store result
time += Time.deltaTime;
yield return null;
}
value = end; // Set to final value
}
/// <summary>
/// 平滑过渡实现更新云覆盖面积参数
/// </summary>
/// <param name="start">起始值</param>
/// <param name="end">目标值</param>
/// <param name="duration">时间</param>
/// <returns></returns>
IEnumerator SmoothUpdateCloudShapeFactor(float start, float end, float duration)
{
float time = 0;
while (time < duration)
{
float t = time / duration;
time += Time.deltaTime;
shapefactor = Mathf.Lerp(start, end, t);
GetVolumetricClouds().shapeFactor.value = shapefactor;
yield return null;
}
shapefactor = end;
}