Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Lerp未按预期工作,跳转到值,而不是随着时间的推移平稳地进行_C#_Unity3d - Fatal编程技术网

C# Lerp未按预期工作,跳转到值,而不是随着时间的推移平稳地进行

C# Lerp未按预期工作,跳转到值,而不是随着时间的推移平稳地进行,c#,unity3d,C#,Unity3d,你好 我正在做一个游戏,当达到一定条件时,我想增加产生的粒子数。现在,我选择使用lerp,而不是它们一次全部出现,这样它们将顺利地上升到该值 然而,尽管我尽了最大的努力,我仍然无法顺利实现这一点,而且它跳到最大的方式太快了。 我已经发布了我的代码,希望有人能以我的方式指出错误 void Update () { if (increaseLeaf==true) { var main = LeafStormParticleSystem.main; De

你好

我正在做一个游戏,当达到一定条件时,我想增加产生的粒子数。现在,我选择使用lerp,而不是它们一次全部出现,这样它们将顺利地上升到该值

然而,尽管我尽了最大的努力,我仍然无法顺利实现这一点,而且它跳到最大的方式太快了。 我已经发布了我的代码,希望有人能以我的方式指出错误

void Update () {
    if (increaseLeaf==true)
    {

        var main = LeafStormParticleSystem.main;
        Debug.Log("here");
        main.maxParticles = (int)Mathf.Lerp(5, 150, counter);
        main.simulationSpeed = (int)Mathf.Lerp(1, 5, counter );
         counter += Time.deltaTime / 2;

        if (main.simulationSpeed == 5)
        {
            increaseLeaf = false;
        }
    }
    //counter += Time.deltaTime / 2;
    if (decreaseLeaf == true)
    {
        var main = LeafStormParticleSystem.main;

        main.maxParticles = (int)Mathf.Lerp(150, 5, decounter);
        main.simulationSpeed = (int)Mathf.Lerp(5, 1, decounter);
        decounter += Time.deltaTime / 2;

        if (main.maxParticles == 5)
        {
            decreaseLeaf = false;
        }
    }
}

当您使用lerp()时,可以执行如下操作
var num=new var(lerp(a,b))

可能重复@RodrigoRodrigues不幸的是,这个问题无助于我,你能澄清“太快了”有多快吗?您预计需要多长时间?您能告诉我们您将计数器/计数器设置为0的位置吗?lerp/slerp的第三个参数需要一个介于0和1之间的值。更不用说从0到1的转换方式需要2秒,因为您没有定义速度。@Niana您的速度是
/2
,因为您将时间除以。deltaTime除以2,实际上是告诉它需要2秒,如果您想延长它或增加时间,您可以为速度设置一个变量,然后将/2改为
Time.deltaTime/speed
其中speed是您希望它花费的秒数。这如何解决问题?