Crate bevy_prank

Source
Expand description

§Bevy Prank

Opinionated Unreal Engine inspired spectator camera for the Bevy game engine.

demo.webm

§✨ 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

  1. Install the crate using cargo

    cargo add bevy_prank
  2. Add PrankPlugin to your app

    use 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

ControlAction
MMB + DragOffsets the camera on its local x (left/right) and y (top/bottom) axes
RMB + DragRotates the camera
RMB + ScrollAdjusts movement speed
RMB + W A S DMoves the camera on its local x (left/right) and z (front/back) axes
RMB + E QMoves the camera on the y (top/bottom) axis
RMB + LShift + W A S D E QMoves the camera on the x (left/right), y (top/bottom) axes, and z (front/back) axes

Modules§

prelude
use bevy_prank::prelude::* to import common resources, components, etc.
three
Provides three-dimensional camera functionality.

Structs§

PrankConfig
Configuration of PrankPlugin.
PrankPlugin
Opinionated Unreal Engine inspired spectator camera for the Bevy game engine.