如何制作开机定时器?

时间:2019-07-11 02:05:30

标签: c# unity3d timer game-development

我想制作一个倒计时计时器,当他处于活动状态时,它将返回bool的值,因此我可以检查其他脚本是否处于活动状态,如果不是则给出双倍分数,那么您需要给出正常的分数。 我想使其更加复杂,并且我想在计时器处于活动状态时在计时器上添加时间,如果未启用,那么我们将使用默认的倒数时间...

如果计时器还没有结束,我在需要加时间的时候我不知道怎么特别使用库鲁汀。

让我们举个例子: 我启动电源,计时器开始工作5秒钟,计数为0。 如果我再次启动电源并打开计时器,请说3,现在启动电源需要8秒钟。通电结束后,他必须在5秒钟后从玩家拿起新的那一秒开始。

这是我的代码不起作用,我想我的代码也没有功能,当启动电源时,没有增加时间来启动电源。换句话说,我不知道如何检查是否通电功能处于活动状态,如果是,则仅增加5秒。.

这里的代码不包含添加时间,只包含工作计数器。

 void startDoublePoints()
{
    StartCoroutine("doublePoints");
    Time.timeScale = 1;
}
//Simple courutine
IEnumerator doublePoints()
{
    while (true)
    {
        yield return new WaitForSeconds(1);
        timeLeft--;
    }
}

我希望有人能向我详细说明如何实现我的目标。我希望我能说明我需要实现的目标。如果您不了解某些内容,请提出评论,我将尝试再次说明。

非常感谢您的社区,我不知道如果没有这个好地方,我怎么学到什么呢:)

1 个答案:

答案 0 :(得分:1)

float powerUpTimer;
bool isDoublePoints = false;

void Update()
{
    // Check timer only when Power up time
    if(isDoublePoints)
    {
        // Countdown the timer with update time
        powerUpTimer -= Time.deltaTime;
        if(powerUpTimer <= 0)
        {
            // End of power up time 
            isDoublePoints = false;
            powerUpTimer = 0;
        }
    }
}

// Add any time player picks to timer
public void OnPickPowerUp(float buffTime)
{
    isDoublePoints = true;
    powerUpTimer += buffTime;
}