SuperAPI AI 工具集

uloop-simulate-mouse-input

测试与质量

查看项目

更新于 10-16 05:50

技能介绍

用途:在 Unity PlayMode 中通过 Input System 注入 Mouse.current 输入,供运行时逻辑识别;也可在不注入输入的情况下,用 dry-run 检查 Game View 坐标在 3D 物理中会命中什么。

主要能力与动作:Click(按下并释放按钮)、LongPress(按住 --duration 秒后释放)、MoveDelta(一次性注入鼠标 delta)、SmoothDelta(在 --duration 秒内平滑注入 delta,可模拟人类镜头平移)、Scroll(注入滚轮)。命令为 uloop simulate-mouse-input --action <action> [options]。

常用参数:--x/--y 为 Game View 像素坐标(原点左上),用于 Click、LongPress 与 --dry-run;--button 可选 Left/Right/Middle;--duration 最大 30 秒;--delta-x/--delta-y 为位移像素(正右、正上);--scroll-x/--scroll-y 为滚动量(正上负下,通常每格 120);--dry-run 不注入输入,支持 EditMode 且无需 Input System;--layer-mask 与 --max-distance 仅对 --dry-run 生效,后者默认 1000。

使用方式:先确认 Unity 处于 PlayMode(可用 uloop control-play-mode --action Play);点击前可先执行 uloop simulate-mouse-input --dry-run --x 960 --y 540 预检物理命中,必要时加 --layer-mask;坐标可取 AnnotatedElements[].SimX/SimY,或用 ScreenshotToInputFormula 从截图像素换算,不要自行翻转 Y 轴。注入后可用运行时状态、日志或截图核验;若该输入驱动状态转换,可按 uloop-pause-point 技能做帧证据检查,最终验证前用 uloop clear-pause-point --all 清除仅用于检查的暂停点。

适用场景:运行时逻辑读取 Mouse.current.leftButton、右键、delta 或 scroll 的玩法输入验证;对比 simulate-mouse-ui,后者用于 Unity UI 按钮或滑条拖拽。

限制:真实注入要求 PlayMode 且安装 com.unity.inputsystem,游戏代码须通过 Input System API 读取输入。验证时不要触碰物理鼠标/键盘,并让操作系统指针远离 Unity 窗口,以免真实设备输入混入同一 Mouse.current 状态;断言前应重新读取起始值。dry-run 需要活动的 Camera.main,使用 Unity Physics 射线而非 UI EventSystem 射线。输出、坐标与相机字段语义见 references/output-and-coordinates.md。