Controller Read deadzone?

Hi folks.
I’m very slowly getting something to work with the InputSystem. I have movement coming in from a class which is at least a start.

I’m using UserInput.Controller.Steering.performed += ctx => MoveH = ctx.ReadValue(); to get the left stick value from -1 to 1 on a 1D axis.

However, when the stick goes into the deadzone no value is read, so the variable MoveH remains the same as the last ReadValue over the deadzone.

So readings might be 1 .8 .6 .4 .2 .2 .2 .2 .2 where the stick has fallen into the dead. So I thought I’d set the deadzone to 0 and handle it myself. But then when the stick is at 0 no value is read and the previous value persists.

How are you meant to get around this? How can I make sure there is always a read? Or how do I get the read to be 0 when in the deadzone?

And what’s the point of a deadzone if it doesn’t read 0??

Thanks.

And now after testing a few different settings in the Control Manager I can’t get anything out of the gamepad but -1 and 1, while the other axis (setup exactly the same) is giving me all the correct readings.

This is all still a bit broken isn’t it!

The reset of the action comes through on InputAction.canceled.