跳转到内容
返回
本页目录

使用文档

SimpleInputSimulator 使用文档

SimpleInputSimulator 的完整中文产品使用文档

支持的虚幻引擎版本:5.2–5.8

Simple Input Simulator 是 Unreal Engine 的轻量级输入模拟插件。 提供三个蓝图函数,可以通过程序模拟键盘、鼠标和手柄输入。


插件启用后立即生效。 所有函数在蓝图的 Simple Input Simulator 分类下可用。


所有可用函数

节点说明
Simulate Key Input模拟任意输入按键的按下/释放事件

参数:

  • Key:UE 的 FKey 输入按键(空格键、鼠标左键、手柄按钮等)
  • Pressed:true 为按下,false 为释放
  • Player Index:目标玩家控制器(0 = 第一个玩家)

按键输入用法

节点说明
Simulate Axis Input模拟模拟量输入值(移动、鼠标增量、手柄摇杆)

参数:

  • Key:轴输入按键(Mouse X/Y、Gamepad Left Thumbstick X/Y 等)
  • Axis Value:输入值的 3D 向量(通常使用 X 分量)
  • Player Index:目标玩家控制器(0 = 第一个玩家)

轴输入用法

节点说明
Flush Pressed Keys清除所有已按下的按键并重置输入状态

参数:

  • Player Index:目标玩家控制器(0 = 第一个玩家)

输入系统兼容性
Legacy Input✅ 完全支持
Enhanced Input✅ 完全支持 - 自动触发 Input Actions

插件在原始输入层工作,因此两种输入系统都会自动接收模拟事件。


按键输入用法

为 Player 0 模拟按下空格键。

轴输入用法

模拟鼠标移动或手柄摇杆输入。


  • 所有函数返回 bool 表示成功/失败
  • Player Index 0 指向第一个玩家控制器
  • 按下与抬起事件要配对;测试、演示或回放结束后,可使用 Flush Pressed Keys 清除残留状态,防止按键“卡住”
  • 节点也可在编辑器调用,但必须有有效的 PlayerController;没有有效控制器时,无法按预期注入输入
  • 轴输入自动适应当前帧率
  • 查看输出日志获取详细模拟信息(LogSimpleInputSimulator)

打开 编辑 → 项目设置,进入 SimpleInputSimulator 设置页,将 Language 设置为 English 或 中文。默认语言为英文。面向用户的界面、提示、通知和功能日志会立即更新,无需重启编辑器;公开 API 名称以及模块启动/关闭日志始终保持英文。

如有使用问题或合作需求,请前往联系页面。

使用蓝图节点模拟按键与轴输入,并在结束时清理状态。

节点功能
Simulate Key Input模拟任意按键的按下/抬起(键盘、鼠标、手柄按钮)
Simulate Axis Input模拟摇杆、鼠标移动等轴输入
Flush Pressed Keys一键清空所有按下状态

参数与使用说明:

  • 支持所有 FKey:键盘、鼠标、手柄全覆盖
  • 同时兼容 Legacy Input 和 Enhanced Input
  • 支持 PlayerIndex,用于指定本地玩家
  • 所有节点标记 CallInEditor = true,编辑器中可直接测试
  • 轴输入自动获取 DeltaTime,无需手动传入

输入通过 PlayerController::InputKey 注入 UE 输入系统。


用脚本自动执行流程,减少反复手动操作:

BeginPlay:
Delay(1.0) // 等待初始化
SimulateKeyInput(W, true) // 前进
Delay(2.0)
SimulateKeyInput(W, false) // 停止
SimulateKeyInput(SpaceBar, true) // 跳跃
SimulateKeyInput(SpaceBar, false)
SimulateKeyInput(LeftMouseButton, true) // 攻击
SimulateKeyInput(LeftMouseButton, false)
FlushPressedKeys() // 清理状态

可将这些操作序列用于冒烟测试和回归测试。

在教程界面中,让角色自动执行操作,玩家只需要看:

1. 屏幕提示 "按 W 前进"
2. SimulateKeyInput(W, true) → 角色自动走起来
3. 延迟 2 秒
4. SimulateKeyInput(W, false) → 停下
5. 屏幕提示 "做得好!接下来试试跳跃"

演示使用游戏中的角色执行输入序列。

让 AI 通过输入系统控制角色,验证从输入到行为的完整链路:

// AI 决策:向右移动
SimulateAxisInput(Gamepad_LeftX, FVector(1.0, 0, 0))
// AI 决策:开火
SimulateKeyInput(Gamepad_RightTrigger, true)

这样可以检查从模拟输入到角色行为的处理过程。

配合录制系统,记录玩家的输入序列(Key + 时间戳),然后用 SimulateKeyInput 逐帧回放。可以用于:

  • Bug 复现(QA 录一段操作,程序直接回放定位问题)
  • 性能分析(同一段操作在不同硬件上回放,对比帧率)
  • 精彩操作回放

展会现场没人操作时,让游戏自动演示精彩片段:

// 循环播放预设的操作序列
while (bDemoMode):
PlayDemoSequence() // 内部用 SimulateKeyInput 驱动
Delay(5.0) // 每段演示间隔 5 秒

一个人测试双人游戏,用脚本控制第二个玩家:

// 玩家1:手动操作
// 玩家2:脚本控制
SimulateKeyInput(W, true, 1) // 玩家2 前进
SimulateAxisInput(MouseX, ..., 1) // 玩家2 转向

将插件文件夹复制到项目的 Plugins 目录,重启编辑器即可。

在蓝图中搜索 Simple Input Simulator 分类,拖出节点直接用。

  • 模拟输入需要有效的 PlayerController,确保游戏已运行
  • 按下后记得抬起,否则按键会一直处于按下状态
  • 测试结束后调用 FlushPressedKeys 清理残留状态