InputAction Assets,输入行为资产,可以理解成自定义的输入行为(动作)的集合。一个输入动作可以由一种或者多种输入信号组成。比如“前进”这个动作,可以被“W”键触发,也可以被“↑”方向键触发,甚至可以被手柄的“↑”键触发。 Action Map:行为映射表,一个Input Actions可以有多个Map。每个Map下面又有许多Action,可...
当使用了Input System之后,在Project工程目录内的某个文件夹内点击鼠标右键,可以看到我们可以创建一个Input System。 而后输入一个名字,我们的一个输入系统就创建好了。 这里需要解释一下,一个游戏可以有多个输入系统。每一个输入系统只是定义了ActionMap和按键的映射,和游戏本身逻辑无关,所以许多时候,如果游戏存在多个...
当使用了Input System之后,在Project工程目录内的某个文件夹内点击鼠标右键,可以看到我们可以创建一个Input System。 而后输入一个名字,我们的一个输入系统就创建好了。 这里需要解释一下,一个游戏可以有多个输入系统。每一个输入系统只是定义了ActionMap和按键的映射,和游戏本身逻辑无关,所以许多时候,如果游戏存在多个...
PlayerInput组件 该组件是新版InputSystem中包含的玩家输入组件,它需要和ActionAsset资源配合使用,挂载到操作对象上之后,将ActionAsset设置到Actions项上并为它选择默认的ActionMap即可将两者连接。 随后注意到Behavior选项,其下有四个选项,分别是SendMessage,BroadcastMessage,InvokeUnityEvent和InvokeCSharpEvent。
接下来创建Action Maps,点击 + 号,创建一个Map,将其重命名为PlayerInput【名字无所谓,此处的PlayerInput用于表示在游戏中的控制】,先点击Save Asset进行保存。 然后点击Actions里面的+,新建一个Action,然后重命名为Jump。 Properties中的内容先不用动,目前用于按键的响应足够了。 接下来是绑定按键,点击小箭头展开。选...
对于InputSystem,Unity 使用了名叫 Input Action 的配置文件来记录键位的信息。所以我们需要在空白的位置,右键创键一个新的 Input action 后双击编辑。 打开后,新建一个 Action Map,然后我们需要在 Actions 里添加上需要响应的动作,并绑定上想要的键位。
PlayerInput组件 该组件是新版InputSystem中包含的玩家输入组件,它需要和ActionAsset资源配合使用,挂载到操作对象上之后,将ActionAsset设置到Actions项上并为它选择默认的ActionMap即可将两者连接。 随后注意到Behavior选项,其下有四个选项,分别是SendMessage,BroadcastMessage,InvokeUnityEvent和InvokeCSharpEvent。
PlayerInput组件 该组件是新版InputSystem中包含的玩家输入组件,它需要和ActionAsset资源配合使用,挂载到操作对象上之后,将ActionAsset设置到Actions项上并为它选择默认的ActionMap即可将两者连接。 随后注意到Behavior选项,其下有四个选项,分别是SendMessage,BroadcastMessage,InvokeUnityEvent和InvokeCSharpEvent。
InputActionMap是一组InputAction的集合. InputActionAsset是一组InputActionMap的集合。观察刚刚生成的InputSystemAsset.cs 可以看到有InputActionAsset类型的成员变量,并且在构造函数中使用了FromJson函数生成这个asset。构造结束后,从这个asset中找到Player这个ActionMap以及其中的Move这个action.private...
usingUnityEngine;usingUnityEngine.InputSystem;publicclassTestingInputSystem:MonoBehaviour{privateRigidbodyrigidbody;privatevoidAwake(){rigidbody=GetComponent<Rigidbody>();}publicvoidJump(InputAction.CallbackContextcontext){Debug.Log("Jump!"+context.phase);rigidbody.AddForce(Vector3.up*5f,ForceMode.Impulse)...