计时器计数无法正常工作

时间:2018-07-18 12:29:52

标签: c# unity3d counting

我想在玩家杀死游戏时显示一些文字在给定时间内(在Unity3d中)有3、4或5个敌人。

我在PlayerControl脚本中有一个计时器(comboTimer),该计时器在敌人被玩家射击时启动。计时器启动后,每次敌人被玩家射击,计数器(comboCounter)都会增加。另一个脚本(EnemyControl)控制当kill-counter(comboCounter)达到某个值(例如3 kills =“ Combo x3”)时如何显示适当的文本。这应该在计时器的值范围内完成。

问题在于,在大多数情况下,显示的文本为3击(“组合x3”)。即使我将waitTime增加到例如5或10秒。逻辑中有一个错误,但找不到它。

这是我的PlayerControl脚本的计时器:

public static bool comboTimerRunning = false;
public static int comboCounter;

float comboWaitTime = 1f;//1.0 Sekunden
float comboTimer;

public void ComboTimer() {
    comboTimer += Time.deltaTime;
    if (comboTimer > comboWaitTime) 
    {
        ResetComboTimer();
    }
}

public void ResetComboTimer () {
    comboTimer = 0f;
    comboTimerRunning = false;
    comboCounter = 0;
}

这是控制显示文本处理的脚本(EnemyControl):

if (!PlayerControl.comboTimerRunning) {
        PlayerControl.comboTimerRunning = true;
}
PlayerControl.comboCounter++;
if (PlayerControl.comboCounter >= 3) {
    if (PlayerControl.comboCounter == 3) {
            comboTxtObj.GetComponent<ComboTxt>().ShowComboText("Combo x3");
    } else if (PlayerControl.comboCounter == 4) {
            comboTxtObj.GetComponent<ComboTxt>().ShowComboText("Awesome");
    } else if (PlayerControl.comboCounter >= 5) {
            comboTxtObj.GetComponent<ComboTxt>().ShowComboText("Mega-Kill");
    }
    PlayerControl.comboTimerRunning = false;
}

0 个答案:

没有答案