using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.Events; public class InputReader : MonoBehaviour, GameInput.IGameplayActions { public UnityAction jumpEvent; public UnityAction jumpCanceledEvent; public UnityAction attackEvent; public UnityAction interactEvent; public UnityAction extraActionEvent; public UnityAction pauseEvent; public UnityAction moveEvent; public UnityAction cameraMoveEvent; GameInput gameInput; private void OnEnable() { if(gameInput == null) { gameInput = new GameInput(); gameInput.Gameplay.SetCallbacks(this); } gameInput.Gameplay.Enable(); //Debug.Log("I'm enabled"); } private void OnDisable() { gameInput.Gameplay.Disable(); } public void OnAttack(InputAction.CallbackContext context) { if(attackEvent != null && context.phase == InputActionPhase.Started) attackEvent.Invoke(); } public void OnExtraAction(InputAction.CallbackContext context) { if(extraActionEvent != null && context.phase == InputActionPhase.Started) extraActionEvent.Invoke(); } public void OnInteract(InputAction.CallbackContext context) { if(interactEvent != null && context.phase == InputActionPhase.Started) interactEvent.Invoke(); } public void OnJump(InputAction.CallbackContext context) { if(jumpEvent != null && context.phase == InputActionPhase.Started) jumpEvent.Invoke(); if(jumpCanceledEvent != null && context.phase == InputActionPhase.Canceled) jumpCanceledEvent.Invoke(); } public void OnMove(InputAction.CallbackContext context) { if(moveEvent != null) { //Debug.Log("Move Event " + context.phase + " value " + context.ReadValue()); moveEvent.Invoke(context.ReadValue()); } } public void OnPause(InputAction.CallbackContext context) { if(pauseEvent != null && context.phase == InputActionPhase.Started) pauseEvent.Invoke(); } public void OnRotateCamera(InputAction.CallbackContext context) { if(cameraMoveEvent != null && context.phase == InputActionPhase.Performed) { cameraMoveEvent.Invoke(context.ReadValue()); } } }