- Home /
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?
Answer by FortisVenaliter · Jan 26, 2017 at 07:37 PM
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()
Your answer
Follow this Question
Related Questions
Charging up the speed of an game object through a mouse click 3 Answers
Weird mouse speed behaviour 1 Answer
How do I determine mouse speed on the x and z axis? 0 Answers
How to realize the real world physics? 1 Answer
Mouse move with specific speed? 2 Answers