每x秒增加变量x量

时间:2017-08-12 19:11:38

标签: c# unity3d

我正在开发一款关于团结的移动无尽跑步游戏。我的角色速度等于一个名为"速度":

var speed = 7;
GetComponent<Rigidbody> ().velocity = new Vector3 (0, 0, speed);

并希望使用C#将var(速度)每30秒增加4。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

在Unity中有很多方法可以做到这一点。

1 。在Update函数中使用Time.deltaTime使用它来递增变量

int speed = 7;

float counter = 0;
void Update()
{
    //Increment Counter
    counter += Time.deltaTime;

    if (counter >= 30)
    {
        //Increment Speed by 4
        incrementSpeed();

        //RESET Counter
        counter = 0;
    }
}


void incrementSpeed()
{
    speed += 4;
}

2 。与协程和WaitForSecondsWaitForSecondsRealtime

void Start()
{
    StartCoroutine(incremental());
}

IEnumerator incremental()
{
    while (true)
    {
        //Wait for 30 seconds
        yield return new WaitForSeconds(30);

        //Increment Speed
        incrementSpeed();
    }

}

void incrementSpeed()
{
    speed += 4;
}

使用哪一个真正取决于您是否想要查看计数器。使用第二种解决方案,您无法看到计时器的状态。它会在每30秒后增加一次。这些是最基本的方式。