bevy_prank

Crates.iobevy_prank
lib.rsbevy_prank
version0.8.0
sourcesrc
created_at2023-08-03 18:31:07.326965
updated_at2023-08-17 17:54:44.386892
descriptionOpinionated Unreal Engine inspired spectator camera for the Bevy game engine
homepage
repositoryhttps://github.com/utilyre/bevy_prank
max_upload_size
id933939
size131,687
Amirabbas Fazelinia (utilyre)

documentation

README

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

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
Commit count: 130

cargo fmt