In our current project we are manipulating Time.timeScale to speed the game up. We use values as high as 60.
This seems to cause InvokeRepeating(“Tick”, 1,1 ) to forget it was supposed to wake up and fire an event.
Yes we realize that this will happen a lot! But it’s something we need to do. A lot.
Is this a bug in Unity? Are we forgetting something? How can this be fixed so that the Tick method really is called no matter how high the Time.timeScale value is?
Thankful for any help! We’re supposed to demo the game to the customer at the end of the week, and we’re starting to panic a little here…
Actually, it seems that the function Tick() is called, but the log output stops. Tick() does some slow things once in a while, and the log output stops soon after Tick() did it’s slow things for the first time. (using a high timeScale)
Be careful if you are running the TimeScale that high then FixedUpdate will be called 60times more often per second… At least I think this is true, I know it works that way the other way around. If I want to put slow-motion effects in I can drop the Time.timeScale to 0.5f and double the Time.fixedDeltaTime so I don’t get choppy physics in slow-mo.
We’re writing a train simulation and need to be able to fast forward. It’s not like Transport Tycoon or similar, this is more of an simulator of how it’s done at a large train station. It would take 17 hours to play the game from start to finish, and we need to be able to speed the slow parts up “a little”.
We’re still not even at beta yet, and the spec funnily doesn’t mention how much one should be able to speed up the game, so we’re toying around with values at the moment to try and get a feeling of what might work.
I felt more ashamed than annoyed. The funny thing is that we were two who completley missed that button and instead was sitting there for a couple of hours suggesting useful debug messages or quick fixes. And then found the button minutes after posting this embarrasing thread. Oh well. We learned something at least.