How is the Deadzone from Input Map supposed to work?

// Circular length limiting and deadzone.
float length = vector.length();
if (length <= p_deadzone) {
	return Vector2();
} else if (length > 1.0f) {
	return vector / length;
} else {
	// Inverse lerp length to map (p_deadzone, 1) to (0, 1).
	return vector * (Math::inverse_lerp(p_deadzone, 1.0f, length) / length);
}

Here’s the actual engine soure code, you can see it retruns a value from 0 to 1. a deadzone of 0.5 with an input of 0.5 results in 0

2 Likes