Is it possible to distinguish between mouse and trackpad scroll?

Is it possible to determine whether the user is using a laptop trackpad or a mouse scrollwheel when using Input.GetAxis(“Mouse ScrollWheel”)?

For whatever reason, using two fingers to scroll on a MacBook Pro trackpad is much more sensitive than using the scrollwheel on a mouse.

It would be great to be able to use a different speed factor for Mac trackpad input.

I realize I am nearly 5 years late, but the answer could still be relevant to developers today.

Unfortunately there is no apparent way to distinguish between the two inputs on Mac, as the Input.GetAxis(), Input.mouseScrollDelta, and Event.current.delta methods of receiving scroll delta are all equivalent.

However on Windows there is the following solution:

Since Input.mouseScrollDelta doesn’t pick up on a touchpad scroll and Event.current.type (in the OnGUI method) does, you can detect this and handle them independently.

void OnGUI () {
	if (Event.current.type == EventType.ScrollWheel) {
		if (Input.mouseScrollDelta.y == 0) {
			// Handle touchpad scroll using Event.current.delta.y
		} else {
			// Handle mouse scroll using Input.mouseScrollDelta.y
		}
	}
}

Nobody knows how???

Try to resolve in WinAPI. But system see trackpad like a mouse.

[DllImport("user32.dll", SetLastError = true)]
static extern bool SystemParametersInfo(uint uiAction, uint uiParam, IntPtr pvParam, uint fWinIni);

bool fResult;
IntPtr aMouseInfo;

void Start()
{
  fResult = SystemParametersInfo(0x101E, 0, aMouseInfo, 0);
  if (fResult)
  {
    print("Info: " + aMouseInfo);
  }
}