Input System (881013)

void Update()
{
float movementAmount = speed * Time.deltaTime;

float movementInput = playerControls.Player.Move.ReadValue();

transform.position = Vector3.MoveTowards(transform.position, movePoint.position, movementAmount);

if (movementInput < 0)
{
Move(new Vector3(-1f, 0f, 0));
}
else if (movementInput > 0)
{
Move(new Vector3(1f, 0f, 0));
}

}

I have this as my code but I want the movementInput to only be read once. Right now I added A and D to a positive/negative binding Action in the InputSystem and when I press A the Object just moves left to infinity. How do I make it so my Move function is only outputted once? Or is a better way of asking how to make it so my Action is only read once.

If you post a code snippet, ALWAYS USE CODE TAGS:

How to use code tags: Using code tags properly

I believe what you want is edge trigger, so that a single movement to one side of the input will cause a single input event rather than continuous motion each frame.

This is generally done in the old input system with the *Down() variants of the calls.

With the new input system I imagine it is something in the bindings for this axis of control. I would work through a few new Input System tutorials to see how they use it to navigate (for instance) a list of discrete items, because obviously they will need that.