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

如何让新绑定的InputAction触发已有持有的输入值回调?

解决方案

没法靠单纯配置解决,必须手动补逻辑处理,给你两种常用的实现方式:

方法一:绑定后主动检查并触发回调

绑定完performed回调后,直接读取当前输入值,如果符合触发条件(比如你说的达到1f),手动调用你的业务函数:

// 先绑定回调
inputAction.performed += ctx => Function(ctx.ReadValue<float>());
// 手动触发初始状态的回调
var currentValue = inputAction.ReadValue<float>();
if (currentValue >= 1f) // 根据你的实际输入阈值调整判断条件
{
    Function(currentValue);
}

方法二:模拟触发一次performed事件

如果你的业务函数依赖InputActionContext的其他信息,可以手动触发一次performed事件:

inputAction.performed += ctx => Function(ctx.ReadValue<float>());
// 先判断当前输入状态,符合条件再模拟触发
var currentValue = inputAction.ReadValue<float>();
if (currentValue >= 1f)
{
    inputAction.Trigger();
}

注意:Trigger()会直接触发performed回调,所以一定要先判断输入状态,避免无输入时误触发。

如果你的需求是持续按住期间每帧都执行回调,performed回调满足不了(它只在输入状态变化时触发),这种情况得改用Update里轮询读取输入值,或者结合started回调开启协程/定时器持续执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 16:24:55