Precise timing of user responses

We are at the beginning of a research project that involves testing subjects on computer tasks and measuring their performance (for example, reaction times). We are considering Unity along with a small number of other development environments (even though this is not a game, it has game-like elements).

Since timing is of crucial importance to us, I am wondering if anyone could comment on the ability to do precise and accurate timing of user responses in Unity. The mere existence of a command that returns the time to a certain precision is not so much what I am asking after… it must actually be that accurate in real use, and reliably so. Might Unity be an appropriate choice for us?

We would need, at the very least, reliable accuracy to 10 ms. This is minimal, however… the more precise and accurate the timing, the better.

I’ve never thought to question the accuracy of the Time.Time() function, but I’m sure it must be at least as reliable as 10ms. We can see frame rates over 100 fps, so it’s gotta be that good at least.

The timing accuracy of input depends on the framerate, so the higher the framerate, the more accurate the timing. For true accuracy you’d have to write a plugin that handles input. (Unity functions are not thread-safe, so it’s not possible to just have a separate thread that handles input.)