bevy_panorbit_camera 0.1.2

A basic pan and orbit camera in Bevy
Documentation

Crates.io docs.rs Bevy tracking

Bevy Pan/Orbit Camera

Basic orbit camera controls for Bevy. Supports orbiting, panning, and zooming.

It was designed as a plug and play camera to get up and running quickly, with good defaults, but also the ability to customise some aspects to your liking.

Default controls:

  • Left Mouse - Orbit
  • Right Mouse - Pan
  • Scroll Wheel - Zoom

Demo

A screen recording showing camera movement

Features

  • Smooth orbiting motion
  • Line-by-line and pixel scrolling
  • Orthographic camera projection in addition to perspective
  • Customisable controls and sensitivity

Quick Start

Simply add the PanOrbitCameraPlugin, then add PanOrbitCamera to an entity with a Camera3dBundle:

use bevy::prelude::*;
use bevy_panorbit_camera::{PanOrbitCameraPlugin, PanOrbitCamera};

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_plugin(PanOrbitCameraPlugin)
        .add_startup_system(setup)
        .run();
}

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

Be sure to check out the examples.

Version Compatibility

bevy bevy_panorbit_camera
0.10.X 0.1.X

Credits

  • Bevy Cheat Book: For providing an example that I started from
  • babylon.js: I referenced their arc rotate camera for some of this

License

All code in this repository is dual-licensed under either:

at your option. This means you can select the license you prefer! This dual-licensing approach is the de-facto standard in the Rust ecosystem and there are very good reasons to include both.