@Andrew when passed for example: the current bonus level, you can re-play only after, well, 48 hours. The timer is triggered, when leaving the game, it stores hours, minutes, seconds in PlayerPrefs, when entering the game it reads the absence time from the timer.
My suspicions came true :)
In this particular case, the timer is NOT ALLOWED. All you need is to remember the time when you can do the next iteration. In this case, let there be a call to the BonusGame() method BonusGame()
will be something like this:
public void BonusGame() { if( DateTime.Now > PlayerPrefsNextBonusGameTime) { //some bonus Game Logic } }
and to show the time remaining to a possible game in the bonus game, you need something like:
public TimeSpan TimeLeftToBonusGame { get { return DateTime.Now - PlayerPrefsNextBonusGameTime ; } }
where PlayerPrefsNextBonusGameTime is DateTime.
everything was written exclusively within the framework of pseudocode and may not work when copying, but here the main thing is to understand the approach.