什么时候使用多个Action Maps
比如要做一个角色移动和角色驾驶的功能. 一个Action Maps去控制人物的移动,另一个Action Maps 用于驾驶控制.
切换Action Maps
playerInput.SwitchCurrentActionMap("Menu");
Debug.Log(playerInput.currentActionMap);
三种不同类型的Action
Button 默认设置,包括按钮或者按键触发的一次性动作
Value 提供一种连续状态变化事件,如果设置了多个输入,就会切换到最主要的一个。用它进行模拟控制,比如移动。
Pass Through 和Value很相似,但它不会像Value一样(如果有多个输入时,不会只选择最主要的那个,而把其他的输入忽略)Values会优先考虑最大的输入值,而Pass Through会优先考虑最近的输入值,而不管它有多大。
input system 中的 Get Key 和 Get Key Down
如果使用老的input Manager, 判断一个键是按了一次还是按下了(例如移动),通过检查对按住按钮的Get key或对单次按下的Get key down来完成。
在 input system 中 Button Action Type 代表只触发一次,等价于 Get Key Down
Value Action Type等价于 Get Key
添加绑定
using UnityEngine;
using UnityEngine.InputSystem;
public class BasicRebinding : MonoBehaviour
{
public InputActionReference triggerAction;
void ChangeBinding()
{
InputBinding binding = triggerAction.action.bindings[0];
binding.overridePath = "<Keyboard>/#(g)";
triggerAction.action.ApplyBindingOverride(0, binding);
}
}