iOS returning different times for WaitForSeconds at small floats (0.035)

Moving everything over to a MonoBehaviour class and using InvokeRepeating has resolved the issue. Giving similar times to OSX.

On OSX the waitForSeconds(0.035f) takes ~0.036 seconds.
On iOS the waitForSeconds(0.035f) takes ~0.066 seconds.

Edit: Changing the 0.035 to a smaller value holds no change until it suddenly jumps to ~0.033 seconds. I’m starting to think that at those small targets, iOS does not want to give much accuracy.

Edit2: Even at larger waitTimes like 0.15f & 0.22f, the iPhone is still having timing differences. It’s getting closer, but still lagging behind.

Unity’s waitforseconds is different from real time.Its not only for IOS as well as for Android and other platforms.If you want to use real time use this 1

waitForSeconds is frame dependent, that means that could have been passed 0.035 seconds, but the yield statement have to wait until the next frame update and in that time may have passed more seconds than necessary. If you want more precision you can use FixedUpdate depending in what is your goal.

I’ve updated the question with my resolve.

I decided to move everything over to a MonoBehaviour and use InvokeRepeating. The timing discrepancies are no longer apparent.