1

プレイヤーがトリガーゾーンに入った場合、Unity で 2 つのパーティクル システムの開始色をある色から別の色に変更したいと考えています。私は Color.Lerp でそれをやろうとしましたが、その結果、「ラグ」が発生し、間に 3 つの色しかありませんでした。私のコード:

public IEnumerator animateTriggerEnter(float duration = 0.1f)
{
    float elapsedTime = 0f;
    float lerp = 0f;
    while (lerp <= 1f)
    {
        elapsedTime += Time.deltaTime;
        lerp = elapsedTime / (float) duration;
        topParticle.startColor = Color.Lerp(standardColor, triggerColor, lerp);
        botParticle.startColor = Color.Lerp(standardColor, triggerColor, lerp);
        yield return null;
    }
}

value についてはlerp、常に同じ 6 つの値を取得しますが、それ以上になるべきではありませんか? また、持続時間が長くてもラグが残ります。

4

1 に答える 1

0

まずは隔離しようと思います

Color.Lerp(standardColor, triggerColor, lerp);

ストップウォッチの速度をテストしていますか?私が正しければ、lerp は以上のことを指摘しています。

result=startValue + (endValue - startValue) * lerpValue;

その場合、+ 1 コンストラクターの実行。MSDNによると、 数学自体は、

lerp = elapsedTime / (float) duration;

あなたはそれがlerpの問題だと確信していますか?

于 2016-02-22T06:56:29.943 に答える