我在动画工作中使用协程。我必须确保时机是完美的。例如,我需要加班增加价值。我设置了 time 和 stepCount 来执行此操作。我的代码如下所示:
IEnumerator ScaleDown(float time)
{
print(Time.time);
float value = 0f;
float deltaValue = 1 / (stepCount*time);
float deltaTime = 1/stepCount;
while (value < 1f)
{
value += deltaValue;
meshRenderer.SetBlendShapeWeight(1, value * 100f);
yield return new WaitForSeconds(deltaTime);
}
print(Time.time);
}
因此,当我设置 time=1f 和 stepCount=1 时,开始和结束打印之间的实时时间为 1 秒。 但是当我将 stepCount 增加到 100 或更多保持 time=1 时,则实时时间超过 1 秒。 大约 ~1.67f
所以我有一个问题:我怎样才能使用具有特定 stepCount 的协程并拥有完美的时序?我使用 stepCount 在 blenshapes、着色器变量(如不透明度)上实现更平滑的过渡。并且必须使用 stepCount>=100。
一只名叫tom的猫
相关分类