点击Action Maps旁边的“+”创建一个“行为映射表”,新建的Map下会带有一个空action和一个未绑定Control的Binding。下边会解释。 新建Action Maps 现在我们细说一下上述步骤出现的几个概念以及Input Actions配置界面的一些选项。 InputAction Assets,输入行为资产,可以理解成自定义的输入行为(动作)的集合。一个输入动作...
InputActionMap是一组InputAction的集合. InputActionAsset是一组InputActionMap的集合。观察刚刚生成的InputSystemAsset.cs 可以看到有InputActionAsset类型的成员变量,并且在构造函数中使用了FromJson函数生成这个asset。构造结束后,从这个asset中找到Player这个ActionMap以及其中的Move这个action.private...
wasPressedThisFrame) { //开启名称为UI的ActionMap playerInput.SwitchCurrentActionMap("UI"); } } public void Jump(InputAction.CallbackContext context) { Debug.Log(context); if(context.performed) { Debug.Log("Jump!" + context.phase); rigidbody.AddForce(Vector3.up, ForceMode.Impulse); } }...
输入好名字,然后点击+添加设备(我研究了8个小时,终于找到我的Input system没有响应的原因,就是创建了Scheme但是没有添加设备) 然后点击Save。 新建好的Input Scheme 接下来创建Action Maps,点击 + 号,创建一个Map,将其重命名为PlayerInput【名字无所谓,此处的PlayerInput用于表示在游戏中的控制】,先点击Save Asset...
Input System是Unity推出的下一代输入系统,相比于旧版输入系统,在可配置性、多平台输入等方面有了很大的提升,本文记录备忘了4种在代码中使用InputSystem进行事件处理的方法。 使用配置的四种方式 前三种都需要在GameObject上挂载PlayerInput组件: Actions参数选择我们的Input Action配置文件、Default Map选择默认激活的Map、...
当使用了Input System之后,在Project工程目录内的某个文件夹内点击鼠标右键,可以看到我们可以创建一个Input System。 而后输入一个名字,我们的一个输入系统就创建好了。 这里需要解释一下,一个游戏可以有多个输入系统。每一个输入系统只是定义了ActionMap和按键的映射,和游戏本身逻辑无关,所以许多时候,如果游戏存在多个...
当使用了Input System之后,在Project工程目录内的某个文件夹内点击鼠标右键,可以看到我们可以创建一个Input System。 而后输入一个名字,我们的一个输入系统就创建好了。 这里需要解释一下,一个游戏可以有多个输入系统。每一个输入系统只是定义了ActionMap和按键的映射,和游戏本身逻辑无关,所以许多时候,如果游戏存在多个...
1)右键/Create/InputActions,新建一个输入控制器; 2)双击打开,你会看到下面一个弹窗; 3)添加一个ActionMaps/Actions,再设置一下属性。 设置绑定的Path时,可以点击Listen,然后按相应的输入操作即可。 这里的ActionMaps中的Player对应的就是Events中事件集合,Actions中的Jump就是一个具体的事件,Jump下级中的Space就是...
对于InputSystem,Unity 使用了名叫 Input Action 的配置文件来记录键位的信息。所以我们需要在空白的位置,右键创键一个新的 Input action 后双击编辑。 打开后,新建一个 Action Map,然后我们需要在 Actions 里添加上需要响应的动作,并绑定上想要的键位。
PlayerInput组件 该组件是新版InputSystem中包含的玩家输入组件,它需要和ActionAsset资源配合使用,挂载到操作对象上之后,将ActionAsset设置到Actions项上并为它选择默认的ActionMap即可将两者连接。 随后注意到Behavior选项,其下有四个选项,分别是SendMessage,BroadcastMessage,InvokeUnityEvent和InvokeCSharpEvent。