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

Unity Input System清空Input Action绑定出现异常如何处理?

报错原因

InvalidOperationException报错是因为action.bindings为ReadOnlyArray只读类型,你在循环中边遍历边删除索引0的绑定,会实时修改Input Action内部的绑定结构,导致只读数组的索引对应状态失效,最终抛出异常。

正确清空绑定的方法

方法1:调用原生API(最推荐)

Unity Input System原生提供了清空所有绑定的接口,直接一行代码即可完成,无额外兼容问题:

action.RemoveAllBindings();

方法2:赋值空绑定数组

直接给Action的bindings属性赋值空的绑定数组,实现全量覆盖清空:

action.bindings = System.Array.Empty<UnityEngine.InputSystem.InputBinding>();

方法3:先存绑定数量再倒序删除

如果需要自定义遍历删除逻辑,可以先拿到绑定的总数量,倒序遍历删除,避免索引错乱:

int bindingCount = action.bindings.Count;
for (int i = bindingCount - 1; i >= 0; i--)
{
    action.ChangeBinding(i).Erase();
}
注意事项
  • 清空绑定操作尽量不要在输入事件触发的回调中执行,避免操作时Action处于占用状态导致异常
  • 清空完成后如果需要继续使用该Action,建议调用action.Enable()重新激活,确保修改生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 23:30:04