I'm trying to make a character do a short hop or dash. The player doesn't have control of the character for the duration of the dash, which is supposed to be about .4 seconds.
I tried several ways of doing this... I made a different state that the player is in for that amount of time by creating a float like targetTime
and checked when Time.time
became bigger than targetTime
to give back control to the player. Or I could make a float variable like stateTimer
and subtract Time.deltaTime
each time.
What I noticed is that depending on whether I test the game in the window or maximized, the distance of the dash changes. The game runs noticeably smoother in maximized mode, and depending on the way I calculate movement, the dash goes further or shorter.
The smoother the game runs, the smaller Time.deltaTime
becomes, so in an optimal case, targetTime
and Time.time
would line up exactly. But the larger deltaTime
is, the more it can "overshoot" the targetTime
and lead to different results, especially when the time frame is only half a second...
When the game runs in windowed mode, deltaTime
ranges from around 0.03 to 0.06, which can overshoot quite a bit, but when it's maximized it's around 0.007, around 10 times smaller.
Is there a way to circumvent this? I have no idea how else I'd measure a time frame as short as .4 seconds. Or should I just not bother because the compiled game should run smoothly anyhow (not planning on making it very demanding hardware wise)
I tried around with fixedDeltaTime
but that didn't lead to any good results...