Weird mouse speed bug on 2 different PCs - need help!

Hello,

I’ve been using a very simple technique to track the mouse speed:

private Vector3 newPos;
private Vector3 lastPos;

void Update() {
    newPos = Input.mousePosition;
    mouseSpeed = (newPos - lastPos).magnitude / Time.deltaTime;
    Debug.Log(mouseSpeed)
    lastPos = Input.mousePosition;
}

Now the problem is that when I compile the game, my output_log.txt file shows me very consistent values for the mouseSpeed variable, something like this:

mouseSpeed: 3125.988
mouseSpeed: 2117.998
mouseSpeed: 2258.205
mouseSpeed: 5076.934
mouseSpeed: 2932.493
mouseSpeed: 4731.719
mouseSpeed: 3477.498
mouseSpeed: 5228.842
mouseSpeed: 3560.278

Whereas when we test it on my friend’s computer, it logs values like this:

mouseSpeed: 2843.108
mouseSpeed: 0
mouseSpeed: 0
mouseSpeed: 0
mouseSpeed: 0
mouseSpeed: 2570.544
mouseSpeed: 0
mouseSpeed: 0
mouseSpeed: 0

There are always 4 to 5 frames of a “gap” where the Update function logs ZERO speed, which makes no sense to me.

Can anyone help me out on a possible cause for this?

It’s likely due to the way the mouse hardware reports it’s information to the PC. Try swapping mouses and see if the way it moves goes along with the mouse. It may also be related to the framerate if you have it unlocked.

As for the actual problem, you can probably query the mouse location every five frames or so. Or, try moving the code to FixedUpdate() instead of Update()