- Home /
Current method of reading specific input action states in new system
I looked on other topics for an answer to this with no avail. I am trying to use the code below to read the players jump state in order to create different jump durations depending on whether or not the player holds the jump key. Keep in mind that I removed code that wasn't essential to this question.
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.InputSystem;
using System.Collections;
using System.Collections.Generic;
public class CharacterController2D : MonoBehaviour
{
public bool m_jumping; // Determines if player is jumping
private InputActionAsset controls;
private void Awake()
{
controls = new InputActionAsset();
}
public void JumpInput(InputAction.CallbackContext context)
{
float space = context.ReadValue<float>() * Time.fixedDeltaTime;
if (space > 0 & jumpCount < 1)
m_jumping = true;
}
// Having problems with syntax here?
private void OnEnable()
{
m_jumping = false;
controls.Player.JumpInput.started +=
context => m_jumping = true;
controls.Player.JumpInput.performed +=
context => m_jumping = true;
controls.Player.JumpInput.cancelled +=
context => m_jumping = false;
}
}
I am a beginner to both the new system and to Unity, but I am quite a quick learner and I feel as if I missed some key information about the syntax here. Any help would be whole-heatedly appreciated !!
Answer by mohr023 · Oct 23, 2020 at 05:34 AM
This might help you understanding how the hold action works in the new input system. And yes, you gotta add some different controls for the hold action (using the Update() method to poll for the player's input).
https://forum.unity.com/threads/new-input-system-how-to-use-the-hold-interaction.605587/
Considering you're a beginner like myself, I'd advise you stay away from the new input system until you get the hang of everything else. Even though configuring controls is a lot more intuitive in it, some behaviours, like "hold" involve a lot more than it should, especially if you have simple controls and doesn't have a need for specific action maps.