Files
HelixJump/Assets/Scripts/GameInput/InputReader.cs
2025-12-11 18:20:42 -08:00

56 lines
1.3 KiB
C#

using System;
using UnityEngine;
using UnityEngine.InputSystem;
[CreateAssetMenu(fileName = "InputReader", menuName = "Scriptable Objects/InputReader")]
public class InputReader : ScriptableObject, IInputReader, GameInput.IPlayerActions
{
public Action<Vector2> OnDragValueChanged;
public Vector2 _dragInput;
public Vector2 dragInput
{
get=> _dragInput;
private set
{
_dragInput = value;
OnDragValueChanged?.Invoke(_dragInput);
}
}
public float clickInput { get; private set; }
public bool isclicked {get; private set; }
private GameInput inputActions;
private void OnEnable()
{
if(inputActions==null)
{
inputActions = new GameInput();
inputActions.Player.SetCallbacks(this);
}
inputActions.Enable();
}
public void OnDisable()
{
inputActions?.Player.Disable();
}
public void OnDrag(InputAction.CallbackContext context)
{
dragInput = context.ReadValue<Vector2>();
}
public void OnClick(InputAction.CallbackContext context)
{
clickInput = context.ReadValue<float>();
isclicked = clickInput == 1? true : false;
Debug.Log(isclicked);
}
}