You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity游戏GetAxis("Mouse X/Y")不响应pyautogui等虚拟鼠标的问题咨询

失效原因分析

两种相机模式的输入逻辑完全不同,是失效的核心原因:

  • 可以正常工作的CAMERA_THAT_WORKS_WITH_BOT模式,直接读取Input.mousePosition也就是系统光标的绝对屏幕坐标。pyautogui、普通AHK的MouseMove接口都是直接修改系统光标位置,所以Unity可以正常读到坐标变化,视角控制生效。
  • 失效的CAMERA_THAT_FAILS_WITH_BOT模式,读取的是Input.GetAxis("Mouse X/Y")/GetAxisRaw,这类Unity接口不依赖光标绝对位置,只读取操作系统上报的鼠标相对位移增量(也就是硬件鼠标移动时产生的原始位移信号)。且该模式下开启了Screen.lockCursor = true,Unity会主动将光标锁定在屏幕中心,你调用普通虚拟鼠标接口移动光标后,Unity会立刻把光标拉回中心,不会产生有效的位移增量,因此GetAxis读不到任何输入,视角控制失效。

你给出的AHK脚本用的是绝对坐标移动的MouseMove,自然在该模式下完全无效。

判断正确性说明

你的认知部分正确,但核心偏差是:GetAxis不依赖鼠标加速度/速度参数,而是普通的虚拟鼠标绝对移动接口,根本不会产生系统层的鼠标相对位移增量事件,因此Unity完全收不到对应的输入信号。鼠标加速度参数只会影响GetAxis返回值的缩放比例,不是失效的核心原因。

测试方案

1. 优先验证输入类型问题

改用发送相对鼠标位移事件的接口,不要用修改绝对光标的接口:

  • AHK 实现示例:调用mouse_event系统API发送相对位移,以下代码模拟鼠标每触发一次向右移动20单位,向上移动5单位:
; 0x0001 代表MOUSEEVENTF_MOVE,即相对移动
DllCall("mouse_event", "UInt", 0x0001, "Int", 20, "Int", -5, "UInt", 0, "UPtr", 0)
  • Python 实现示例:用ctypes调用Windows原生SendInputAPI发送相对移动事件,或者直接使用封装好的pynput库的相对移动方法:
from pynput.mouse import Controller
mouse = Controller()
# 相对当前位置移动x+20,y-5
mouse.move(20, -5)

上述方法发送的输入会被Unity的GetAxis正常识别,可先测试是否可以控制视角。

2. 鼠标加速度读取/设置方案

如果需要调整鼠标加速度、速度参数验证影响,可通过Windows系统API SystemParametersInfo 实现:

  • 读取参数:传入参数SPI_GETMOUSE,可以获得三个返回值:两个加速度阈值、一个加速度增益(0为无加速度,1为开启加速度,2为双倍加速度)
  • 设置参数:传入参数SPI_SETMOUSE,写入对应三个值即可修改系统鼠标加速度设置
    Python调用示例:
import ctypes
from ctypes import wintypes

SPI_GETMOUSE = 0x0003
SPI_SETMOUSE = 0x0004
SPIF_UPDATEINIFILE = 0x01
SPIF_SENDCHANGE = 0x02

# 读取鼠标参数
mouse_params = (wintypes.INT * 3)()
ctypes.windll.user32.SystemParametersInfoW(SPI_GETMOUSE, 0, ctypes.byref(mouse_params), 0)
threshold1, threshold2, acceleration = mouse_params
print(f"当前参数:阈值1={threshold1}, 阈值2={threshold2}, 加速度={acceleration}")

# 设置无加速度
mouse_params[2] = 0
ctypes.windll.user32.SystemParametersInfoW(SPI_SETMOUSE, 0, ctypes.byref(mouse_params), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE)

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 11:15:03