Regarding Sam’s statement that we use update to decrement timers rather than put a “time to end” in the dictionary and compare with the unity game timer because of floating point issues:
I saw it somewhere, might have even been one of the Gamedev.TV courses, a “Thought Question”:
Game runs fine for days but after 13 days, it crashes. Why?
The point was, only after about 13 days does the “exponent” on the float get high enough that the smallest possible time increment (the machine epsilon for that value) is too big to be useful (can’t remember the details, perhaps bigger than a frame interval).
So…if you want to use the timer for time, just shut the game down and restart every 13 days or so!
This wikipedia entry explains how floating points are (usually) stored (I’ve used computers, like older Crays, that have other schemes, but this one is in about every home computer nowadays) IEEE 754 - Wikipedia .