定义的行为也会越来越多,显示的内容可能会很多,Control Scheme 可以帮我们更好的管理定义的行为,方便切换平台等。 创建 点击左上角菜单 → AddControl Scheme 新建 Add Control Scheme:添加一个方案。 Edit Control Scheme :编辑一个方案。 Duplicate Control Scheme :复制一个方案。 Delete Control Scheme :删除一个...
让我们打开一个InputActionAsset文件,如Packages/com.unity.inputsystem/InputSystem/Plugins/PlayerInput/DefaultInputActions.inputactions。这里会接触几个新名词,如InputActionMap(InputAction的集合)、InputControlScheme(用于筛选InputControl)、InputBinding(用于绑定InputAction和InputControl)等。 ①管理InputControlScheme和...
需要注意的是 我们添加完后 需要运用到该scheme的按键都要勾选use in control scheme。我们的键盘配置就好了。 这时候再点击scheme的添加,就可以添加其他输入系统的scheme了,我们会发现动作都在,只是绑定的键位都不见了。我们只需要重新绑定键位即可。 绑定完后,我们发现总scheme的Jump交互方式就多了一个(没有设备,...
新版InputSystem对大部分常用的输入设备都定义了详细的控制类,其中具体的控制项则基于InputControl基类派生出的各种处理类,包括但不仅限于AxisControl,ButtonControl,TouchControl等。 如果考虑多个同类型的输入设备,比如多个手柄或者多个键盘,那么应使用InputSystem.devices列表来获取所有可用设备并从中找到自己所需的那个。
新版InputSystem对大部分常用的输入设备都定义了详细的控制类,其中具体的控制项则基于InputControl基类派生出的各种处理类,包括但不仅限于AxisControl,ButtonControl,TouchControl等。 如果考虑多个同类型的输入设备,比如多个手柄或者多个键盘,那么应使用InputSystem.devices列表来获取所有可用设备并从中找到自己所需的那个。
对于InputSystem,Unity 使用了名叫 Input Action 的配置文件来记录键位的信息。所以我们需要在空白的位置,右键创键一个新的 Input action 后双击编辑。 打开后,新建一个 Action Map,然后我们需要在 Actions 里添加上需要响应的动作,并绑定上想要的键位。
点击之前创建的InputSystemAsset,在Inspector面板勾选Generate C# Class。Project面板里会多出一个InputSystemAsset.cs文件。创建C#文件PlayerController.cs,将其挂载到Sphere上,按下WASD小球可以移动。using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using static InputSystem...
());//判断状态UnityEngine.InputSystem.TouchPhase tp=tc.phase.ReadValue();switch(tp){//无caseUnityEngine.InputSystem.TouchPhase.None:break;//开始接触caseUnityEngine.InputSystem.TouchPhase.Began:break;//移动caseUnityEngine.InputSystem.TouchPhase.Moved:break;//结束caseUnityEngine.InputSystem.Touch...
紧接上一篇Input System的内容,我们来创建控制器。 首先可以先新建这个Schemes【这个是用于分类控制器的,比如使用手柄就只能使用手柄不能和键盘混用】。 右键绿色框的位置,会出现下面这个界面。 输入好名字,然后点击+添加设备(我研究了8个小时,终于找到我的Input system没有响应的原因,就是创建了Scheme但是没有添加...
usingUnityEngine;usingUnityEngine.InputSystem;publicclassTestingInputSystem:MonoBehaviour{privateRigidbodyrigidbody;privatevoidAwake(){rigidbody=GetComponent<Rigidbody>();PlayerInputActionsinputActions=newPlayerInputActions();inputActions.Player.Enable();inputActions.Player.Jump.performed+=Jump;inputActions.Player...