Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/utilyre/bevy_prank

Opinionated Unreal Engine inspired spectator camera for the Bevy game engine
https://github.com/utilyre/bevy_prank

bevy bevy-plugin camera game-development gamedev plugin

Last synced: about 2 months ago
JSON representation

Opinionated Unreal Engine inspired spectator camera for the Bevy game engine

Awesome Lists containing this project

README

        



Bevy Prank


version
downloads
issues
license



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

1. Install the crate using `cargo`

```bash
cargo add bevy_prank
```

2. Add `PrankPlugin` to your app

```rust
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

```rust
use bevy::prelude::*;
use bevy_prank::prelude::*;

fn setup(mut commands: Commands) {
commands.spawn((
Prank3d::default(),
Camera3dBundle::default(),
));
}
```

For further information see [examples][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 |

[examples]: https://github.com/utilyre/bevy_prank/tree/main/examples