This is how I did the movement input in Chimera Box:
So we get a value from the left stick on the Gamepad. First, we had a dead zone for any number beneath 0.4 and above 0.925. The 0.4 is a very high number, but we didn't want to make any problem with a little stick movement.
Horizontal movement:
We divide each quarter into three sections by deciding on two numbers.
I checked the angle from the right direction.
If it was below 55, we assume the player intended a horizontal movement, so we take the magnitude. We use the magnitude, not the X value, because it better represents the player's intended amount of movement.
If it was above 80, we assumed the player didn't want to make a vertical movement, so we set the horizontal movement to 0.
And if the angle is between the two numbers above, we calculate the normalized angle between them; then we use a SmoothStep (ease-in-out) with the magnitude and the normalized angle.
Division into sectors
X
Input size
=
Horizontal movement size