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

Unity InputSystem多按键绑定单动作时如何从CallbackContext获取触发按键

Unity Input System 单动作多绑定获取触发按键方法

直接通过InputAction.CallbackContext内置的control属性即可读取触发本次事件的具体输入控件,参考实现代码如下:

using UnityEngine.InputSystem;

public void SelectPowerUp(InputAction.CallbackContext context)
{
    // 仅在按键按下完成阶段执行逻辑,避免多次触发
    if (!context.performed) return;
    
    // 读取触发事件的输入控件
    var activeControl = context.control;
    
    // 方式1:通过控件名称判断,适配键盘数字键场景
    switch (activeControl.name)
    {
        case "1":
            // 触发1号道具选择逻辑
            break;
        case "2":
            // 触发2号道具选择逻辑
            break;
        case "3":
            // 触发3号道具选择逻辑
            break;
    }

    // 方式2:通过控件完整路径判断,适配多设备绑定场景(如同时支持键盘、手柄输入)
    // if (activeControl.path == "<Keyboard>/digit1") { /* 1号逻辑 */ }
    // if (activeControl.path == "<Keyboard>/digit2") { /* 2号逻辑 */ }
    // if (activeControl.path == "<Keyboard>/digit3") { /* 3号逻辑 */ }
}

注意事项

  • 优先在context.performed分支下执行业务逻辑,避免输入动作的Started、Canceled阶段重复触发逻辑
  • 如果存在多设备输入绑定需求,优先使用路径判断方式,兼容性更强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 15:24:04