bevy_vr_controller 0.1.1

VR character controller for Bevy
Documentation
use bevy::prelude::*;

use crate::movement::PlayerInputState;

#[derive(Resource)]
pub struct InputMap {
    pub key_forward: KeyCode,
    pub key_backward: KeyCode,
    pub key_left: KeyCode,
    pub key_right: KeyCode,
    pub key_jump: KeyCode,
}

impl Default for InputMap {
    fn default() -> Self {
        Self {
            key_forward: KeyCode::KeyW,
            key_backward: KeyCode::KeyS,
            key_left: KeyCode::KeyA,
            key_right: KeyCode::KeyD,
            key_jump: KeyCode::Space,
        }
    }
}

pub fn read_keyboard_input(
    input_map: Res<InputMap>,
    keys: Res<ButtonInput<KeyCode>>,
    mut player_state: Query<&mut PlayerInputState>,
) {
    for mut state in player_state.iter_mut() {
        state.forward = keys.pressed(input_map.key_forward);
        state.backward = keys.pressed(input_map.key_backward);
        state.left = keys.pressed(input_map.key_left);
        state.right = keys.pressed(input_map.key_right);
        state.jump = keys.pressed(input_map.key_jump);
    }
}