public float GetValue(InputDevice inputDevice) { switch (SourceType) { case InputControlSourceType.Button: return(GetState(inputDevice) ? 1.0f : 0.0f); case InputControlSourceType.Analog: return(inputDevice.ReadRawAnalogValue(Index)); case InputControlSourceType.KeyCode: return(GetState(inputDevice) ? 1.0f : 0.0f); default: throw new ArgumentOutOfRangeException(); } }