diff --git a/Assets/UnityRawInput/Runtime/RawInput.cs b/Assets/UnityRawInput/Runtime/RawInput.cs index b1e2859..f760851 100644 --- a/Assets/UnityRawInput/Runtime/RawInput.cs +++ b/Assets/UnityRawInput/Runtime/RawInput.cs @@ -128,9 +128,11 @@ private static int HandleMouseProc (int code, IntPtr wParam, IntPtr lParam) if (state == RawMouseState.LeftButtonDown) HandleKeyDown(RawKey.LeftButton); else if (state == RawMouseState.MiddleButtonDown) HandleKeyDown(RawKey.MiddleButton); else if (state == RawMouseState.RightButtonDown) HandleKeyDown(RawKey.RightButton); + else if (state == RawMouseState.ExtraButtonDown) HandleKeyDown(RawKey.ExtraButton1); else if (state == RawMouseState.LeftButtonUp) HandleKeyUp(RawKey.LeftButton); else if (state == RawMouseState.MiddleButtonUp) HandleKeyUp(RawKey.MiddleButton); else if (state == RawMouseState.RightButtonUp) HandleKeyUp(RawKey.RightButton); + else if (state == RawMouseState.ExtraButtonUp) HandleKeyUp(RawKey.ExtraButton1); else return Win32API.CallNextHookEx(IntPtr.Zero, code, wParam, lParam); return InterceptMessages ? 1 : Win32API.CallNextHookEx(IntPtr.Zero, 0, wParam, lParam); } diff --git a/Assets/UnityRawInput/Runtime/RawKey.cs b/Assets/UnityRawInput/Runtime/RawKey.cs index cd20006..c2f8fb6 100644 --- a/Assets/UnityRawInput/Runtime/RawKey.cs +++ b/Assets/UnityRawInput/Runtime/RawKey.cs @@ -199,4 +199,6 @@ public enum RawKey : ushort PA1 = 0xFD, OEMClear = 0xFE } + + // https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes } diff --git a/Assets/UnityRawInput/Runtime/RawMouseState.cs b/Assets/UnityRawInput/Runtime/RawMouseState.cs index f687f65..0d7bce4 100644 --- a/Assets/UnityRawInput/Runtime/RawMouseState.cs +++ b/Assets/UnityRawInput/Runtime/RawMouseState.cs @@ -1,6 +1,6 @@ namespace UnityRawInput { - public enum RawMouseState + public enum RawMouseState : ushort { MouseMove = 0x0200, LeftButtonDown = 0x0201, @@ -9,6 +9,10 @@ public enum RawMouseState MiddleButtonDown = 0x0207, MiddleButtonUp = 0x0208, RightButtonDown = 0x0204, - RightButtonUp = 0x0205 + RightButtonUp = 0x0205, + ExtraButtonDown = 0x20B, + ExtraButtonUp = 0x20C } + + // https://www.pinvoke.net/default.aspx/Constants/WM.html } diff --git a/UnityRawInput.unitypackage b/UnityRawInput.unitypackage index 98e6763..183fb98 100644 Binary files a/UnityRawInput.unitypackage and b/UnityRawInput.unitypackage differ