ActionInput Action被设计成用于分离输入的逻辑意义和物理输入方式。你的代码只需要关心这个输入是跳跃还是射击,而不需要关心这个输入来自键盘还是手柄。 新的输入系统有三个关键的类:InputActionAsset,InputActionMap,InputAction。 InputAction就是逻辑行为,代表它是跳跃,还是移动还是射击。比如我们上面创建的资产中的Move...
行为集合,用于将输入信号转换为Action(配置某个行为),点击右侧加号可创建Action。 何时需要多个 ActionMaps 比如一个吃鸡游戏,有行走状态、驾驶汽车的状态、在界面上的状态。 这时我们就需要为这些状态各自配置独立的Action Map去控制操作。如,为行走状态配置ActionMap映射移动(wasd)、跳跃(空格),同时你又需要另一个Act...
让我们打开一个InputActionAsset文件,如Packages/com.unity.inputsystem/InputSystem/Plugins/PlayerInput/DefaultInputActions.inputactions。这里会接触几个新名词,如InputActionMap(InputAction的集合)、InputControlScheme(用于筛选InputControl)、InputBinding(用于绑定InputAction和InputControl)等。 ①管理InputControlScheme和...
1.PlayerInput组件实现交互 Invoke Unity Events实现 Invoke C Sharp Events实现 2.C#脚本实现交互 CallbackContext 3.切换ActionMap 4.触摸屏交互 新的inputsystem较于老的inputsystem兼容性更强,也让我们不用再去关注输入的条件判断。所以还是值得学习一下。 一.InputSystem的安装 点击Window-PackageManager 里搜Inpu...
InputAction Assets,输入行为资产,可以理解成自定义的输入行为(动作)的集合。一个输入动作可以由一种或者多种输入信号组成。比如“前进”这个动作,可以被“W”键触发,也可以被“↑”方向键触发,甚至可以被手柄的“↑”键触发。 Action Map:行为映射表,一个Input Actions可以有多个Map。每个Map下面又有许多Action,可...
对于InputSystem,Unity 使用了名叫 Input Action 的配置文件来记录键位的信息。所以我们需要在空白的位置,右键创键一个新的 Input action 后双击编辑。 打开后,新建一个 Action Map,然后我们需要在 Actions 里添加上需要响应的动作,并绑定上想要的键位。
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); } } } 十五、重新绑定事件 using UnityEngine; using UnityEngine....
Input System是Unity推出的下一代输入系统,相比于旧版输入系统,在可配置性、多平台输入等方面有了很大的提升,本文记录备忘了4种在代码中使用InputSystem进行事件处理的方法。 使用配置的四种方式 前三种都需要在GameObject上挂载PlayerInput组件: Actions参数选择我们的Input Action配置文件、Default Map选择默认激活的Map、...
PlayerInput组件 该组件是新版InputSystem中包含的玩家输入组件,它需要和ActionAsset资源配合使用,挂载到操作对象上之后,将ActionAsset设置到Actions项上并为它选择默认的ActionMap即可将两者连接。 随后注意到Behavior选项,其下有四个选项,分别是SendMessage,BroadcastMessage,InvokeUnityEvent和InvokeCSharpEvent。
该组件是新版InputSystem中包含的玩家输入组件,它需要和ActionAsset资源配合使用,挂载到操作对象上之后,将ActionAsset设置到Actions项上并为它选择默认的ActionMap即可将两者连接。 随后注意到Behavior选项,其下有四个选项,分别是SendMessage,BroadcastMessage,InvokeUnityEvent和InvokeCSharpEvent。