OnDeviceLost(PlayerInput input):设备丢失(如设备没电) OnDeviceRegained(PlayerInput input):设备注册(设备从丢失中恢复也会执行) OnControlsChanged(PlayerInput input):控制器切换,如键盘和手柄都接入,默认设备为键盘,这时候按下手柄,就会触发 给PlayerInput 其中OnMove和OnJump为InputActions资产中的Actions的名称 ...
// 输入控制类的实例privateTestInputControls InputControls;voidOnEnable(){ InputControls =newTestInputControls();// 创建输入控制实例InputControls.Player.Fire.started += OnFireDown;// 注册开火开始动作的回调InputControls.Player.Fire.performed += OnLongPress;// 注册长按动作的回调InputControls.Player.Fir...
playerInput.currentActionMap.FindAction("Jump").performed -= OnJump; playerInput.currentActionMap.FindAction("Move").performed -= OnMove; } public void OnJump(InputAction.CallbackContext callbackContext) { Debug.Log("Jump"); } public void OnMove(InputAction.CallbackContext callbackContext) {...
新的输入系统有三个关键的类:InputActionAsset,InputActionMap,InputAction。 InputAction就是逻辑行为,代表它是跳跃,还是移动还是射击。比如我们上面创建的资产中的Move。这个逻辑行为可以和多个设备进行绑定。 InputActionMap是一组InputAction的集合. InputActionAsset是一组InputActionMap的集合。 观察刚刚生成的InputSys...
Unity新版InputSystem讲解 input system共计5条视频,包括:01-Unity新版InputSystem讲解、02-接收InputAction的Unity事件、03-Action动作的三个阶段等,UP主更多精彩视频,请关注UP账号。
第一步我们需要安装InputSystem。 在菜单栏中选择“Window→Package Manager”在弹出的 Package Manager面板中选中“Input System”,单击右下角的Install安装,如果列表中显示的内容较少并找不到Input System时,可以将窗口顶部的“Packages”切换为“Unity Registry”即可。
Performed 完成输入事件(例如hold了足够的时间) Canceled 未完成输入事件(例如hold的时间不够) 在这个if中,我们主要判断一下事件 是不是 Press的事件,如果是才继续执行后面的内容。 这里的事件判断对应 Press的部分可以替换为Hold,Tap等InputSystem配置文件Interactions中的事件,例如 HoldInteraction。
public void OnMove(InputAction.CallbackContext context) { //11.Inout Action Phase输入动作阶段 if (context.phase == InputActionPhase.Performed) { //事件调用函数 onMove.Invoke(context.ReadValue<Vector2>());//12.由于Move输入操作读取的是二位向量, ...
voidInputTest() { GameInputinputAction=newGameInput();//GameInput为场景中的InputSystem控制器 inputAction.Enable(); inputAction.Gameplay.MouseDown.performed+=ctx=> { Debug.Log("按下:"+UnityEngine.InputSystem.Mouse.current.position.ReadValue()); ...
.performed+=OnMovePerformed;}privatevoidOnDisable(){InputManager.gameControls.Player.Move.performed-=OnMovePerformed;}privatevoidOnMovePerformed(UnityEngine.InputSystem.InputAction.CallbackContextobj){Vector2moveDir=obj.ReadValue<Vector2>();input_X=moveDir.x;input_Y=moveDir.y;if(input_X!=0&&input...