如何增加然后减少变量

时间:2019-10-19 13:13:24

标签: c#

我确实先将变量增加到30,然后将其减少到-30,然后再将其增加回30,但是我这样做是为了使其仅增加,然后我不知道如何减少相同的变量

public float RotationCar = 1;
if (RotationCar < 30)
{
    RotationCar += Time.deltaTime * 2;
}
if (RotationCar > 30)
{
    RotationCar -= Time.deltaTime * 2;
}

3 个答案:

答案 0 :(得分:0)

无论Time.deltaTime是什么(您一直使用它,因为它一直是积极的,所以我认为是:)),您就很接近目标,将if替换为{{1 }}:

while

Sp第一个循环执行的时间长达 public float RotationCar = 1; while (RotationCar < 30) RotationCar += Time.deltaTime * 2; while (RotationCar > -30) RotationCar -= Time.deltaTime * 2; ,每次迭代都会增加变量。

从逻辑上讲,它具有第二个循环,只要它大于-30,它就会降低变量。

答案 1 :(得分:0)

我将假定您正在使用Unity,因为您尚未说明Time.deltaTime是什么。您可以为此使用一个标志:

private bool increase = true;

if (increase)
{
    if (RotationCar < 30)
        RotationCar += Time.deltaTime * 2;
    else
        increase = false;
}
else
{
    if (RotationCar > -30)
        RotationCar -= Time.deltaTime * 2;
    else
        increase = true;
}

通过这种方式,将RotationCar增大到其值> = 30,然后将该标志设置为false,以便在连续调用Update时减小该值,直到其值是<= -30。然后将标志设置为true,并重复该过程。

答案 2 :(得分:0)

您应该使用一些状态变量来使程序保持减少到-30,即使胡萝卜小于30,也可能是一些枚举

    public float RotationCar = 1;
    public State StateCar = State.Increasing;
    if (StateCar == State.Increasing )
    {
        if (RotationCar < 30) 
        {
            RotationCar += Time.deltaTime * 2;
        }
        else 
        {
             StateCar = State.Decreasing;
        }
    }
    if (StateCar == State.Decreasing) 
    {
        if (RotationCar > -30)
        {
            RotationCar -= Time.deltaTime * 2;
        }
        else 
        {
             StateCar = State.Increasing;
        }
     }