12 releases (7 breaking)
0.8.0 | Aug 17, 2023 |
---|---|
0.7.1 | Aug 17, 2023 |
0.6.0 | Aug 14, 2023 |
0.5.0 | Aug 9, 2023 |
0.1.2 | Aug 4, 2023 |
#2297 in Game dev
33KB
558 lines
Bevy Prank
Opinionated Unreal Engine inspired spectator camera for the Bevy game engine.
✨ Features
-
Provides smooth interpolation for movement without sacrificing camera's translation.
-
Includes an optional HUD overlay to display important information like FOV and FPS.
-
Automatically grabs cursor when MMB/RMB is held.
-
Allows complete control over movement via LShift prefixed controls.
📦 Installation
-
Install the crate using
cargo
cargo add bevy_prank
-
Add
PrankPlugin
to your appuse bevy::prelude::*; use bevy_prank::prelude::*; fn main() { App::new() // ... .add_plugins((DefaultPlugins, PrankPlugin::default())) // ... .run(); }
🚀 Usage
Spawn a Camera3dBundle
along with a Prank3d
component
use bevy::prelude::*;
use bevy_prank::prelude::*;
fn setup(mut commands: Commands) {
commands.spawn((
Prank3d::default(),
Camera3dBundle::default(),
));
}
For further information see examples.
🎮 Controls
Control | Action |
---|---|
MMB + Drag | Offsets the camera on its local x (left/right) and y (top/bottom) axes |
RMB + Drag | Rotates the camera |
RMB + Scroll | Adjusts movement speed |
RMB + W A S D | Moves the camera on its local x (left/right) and z (front/back) axes |
RMB + E Q | Moves the camera on the y (top/bottom) axis |
RMB + LShift + W A S D E Q | Moves the camera on the x (left/right), y (top/bottom) axes, and z (front/back) axes |
Dependencies
~39–73MB
~1.5M SLoC