Cooldown/Countdown not working as expected
Hi!
I´ve made a script for my ingame BulletTime Feature. It´s working fine. I figured out, that it´s neat for the Player to recognize, when the BulletTime is ready again. The problem is: The way I built it, it only tracks the remaining available BulletTime and completely ignores the Cooldown I made for the BulletTime itself.
The way it is working: I activate BulletTime and an ingame Symbol disappears while BulletTime is active. If all BulletTime is used or if the player pauses BulletTime the ingame Symbol reappears.
BulletTime available is 3 Seconds. The overall Cooldown on BulletTIme if the 3 seconds are used is 10 Seconds.
The part which might confuse the player is: The symbol reappears after the 3 seconds, but he can´t use BulletTime, because the overall cooldown is still running.
Is there a way to track the overall cooldown for the BulletTime separately? I tried coroutines, IEnumerators. GUI CountdownTrackers (neat, but if you combine it with the same Keyboard Input, you have to press the button for every single second counted down or I don´t get how CountdownTrackers work).
I hope this isn´t too confusing overall.
Tl,dr: I´m searching for a way to combine two separate timers in one displayed object(or add a second displayed timerobject which is aible to keep track with the first one)
Thanks in advance.
public float currentBulletTimer = 0f;
public float bulletTimeAllowed = 3.0f;
public float timeBetweenBulletTime =0.3333f;
private float timestamp;
public GameObject BulletTimer;
//private Coroutine Timer;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Time.time >= timestamp && (Input.GetKeyDown(KeyCode.U)))
{
if(Time.timeScale == 1.0f)
Time.timeScale = 0.3f;
else
Time.timeScale = 1.0f;
BulletTimer.SetActive(true);
}
if(Time.timeScale == 0.3f)
{
currentBulletTimer += Time.deltaTime;
BulletTimer.SetActive(false);
}
if(currentBulletTimer > bulletTimeAllowed)
{
currentBulletTimer = 0f;
Time.timeScale = 1.0f;
timestamp = Time.time + timeBetweenBulletTime;
BulletTimer.SetActive(true);
}
} }
Your answer
Follow this Question
Related Questions
Why is my animation being started, but is not actually playing? 1 Answer
Farming game Time management 0 Answers
How do you hide milliseconds when making a countdown timer? 3 Answers
OnTriggerStay for Quizgame? 0 Answers
void Update problem 0 Answers