Mouse acceleration in Unity on OSX

Mouselook script: //Without time delta adjustment:using UnityEngine;using System.Collections; - Pastebin.com

I tried without considering timedelta (like Unity’s own mouselook script) and with it multiplied into the input, neither fixed the problem.

I’m on OSX which has mouse acceleration by default, but I’ve downloaded SmoothMouse to get rid of it. Unity doesn’t seem to recognize it.

You can try it for yourself here: http://overpoweredgames.com/MouseAccelTest.zip (both windows and mac builds in the zip). With mouse acceleration disabled in Windows, it behaves correctly. I’d like the same flexibility on OS X. I tested Counter-Strike: Global Offensive and you can play without acceleration in that game on OS X just fine.

Thoughts? Any other way to read mouse input? Any alternatives to SmoothMouse that Unity actually recognizes? Can I filter the input to negate the acceleration?

I’m hoping to build a competitive FPS, so this sort of thing is pretty important. Most competitive players disable all mouse acceleration and smoothing settings so they have more accuracy/consistency. Basically, X distance of mouse movement should ALWAYS give Y distance of movement within Unity – how fast you move the mouse over that distance shouldn’t affect how far you travel in Unity.

1 Like

Sorry for the necro, but why is this still an issue? More than ten threads about it and no response from any Unity staff. This is very important in competitive games.

1 Like

As a bandaid for now, I run SmoothMouse and it works. But having to instruct end users to do the same is definitely not ideal.

I’ll eventually look into whether or not I can bypass Input.GetAxis and grab mouse input myself through a dll or something.