Crate bevy_fpscam
source · [−]Expand description
A basic fps-style flycamera for bevy
Controls
- WASD to move
- LCTRL to descend
- Space to ascend
- Escape to unlock cursor
The controls are customizable
Usage
- Add to Cargo.toml, matching major/minor with bevy
[dependencies]
bevy = "X.Y"
bevy-fpscam = "X.Y"
- Use the plugin
use bevy_fpscam::FpsCamPlugin;
This will spawn the camera for you. If you want to create
the camera yourself, use NoSpawnFpsCamPlugin
instead, and
add a FpsCam
component to your camera.
- Add the plugin
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(FpsCamPlugin)
.run();
}
Customization
You can modify mouse sensitivity, movement speed and keybindings
by modifying the resource of type bevy_fpscam::Config
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(FpsCamPlugin)
.insert_resource(bevy_fpscam::Config{
movespeed: 2.0,
sensitivity: 0.01,
key_bindings: KeyBindings {
unlock: Some(KeyCode::Enter),
..Default::default()
}}).run();
}
Structs
Global configuration for the camera. modify the resource of this type to change from the default configuration
Represents the player controlled camera. Attaching this to an entity which has a transform will make it controllable by the player. Note that if you put this component on multiple entities they will all be controlled simultaneously by the player.
Spawns a camera and sets up the controls.
Keybindings for controlling the camera. Default is WASD for movement, space for up, LCTRL for down and ESC for unlocking the cursor. All keybinds are optional.
Sets up the controls, but does not actually spawn a camera.