4 releases

0.1.3 Sep 18, 2024
0.1.2 Sep 18, 2024
0.1.1 Sep 18, 2024
0.1.0 Sep 18, 2024

#408 in Game dev

Download history 274/week @ 2024-09-14 187/week @ 2024-09-21

461 downloads per month

MIT license

48KB
1K SLoC

bevy_map_camera

docs.rs crates.io

A 3D camera controller inspired by Google Maps, f4maps and Change Finder.

bevy_map_camera example

Based upon LookTransform, LookAngles and Orbital Camera Controller from smooth-bevy-cameras.

Features

  • Orbital camera
  • Zoom towards pointer
  • Grab pan
  • Camera target follows XZ-plane
  • Support for Perspective and Orthographic projection
  • Smoothed movement
  • Customizable keyboard/mouse controls
  • Touch support
    • One finger pan
    • Two finger rotate
    • Pinch to zoom
  • Supports Easing though bevy_easings

Quick Start

use bevy::prelude::*;

use bevy_map_cam::{CameraBundle, LookTransform, MapCameraPlugin};

fn main() {
    let mut app = App::new();
    app.add_plugins(DefaultPlugins);
    app.add_plugins(MapCameraPlugin::default());

    app.add_systems(Startup, setup);
    app.run();
}

fn setup(
    mut commands: Commands,
) {
        commands.spawn(CameraBundle::new_with_transform(LookTransform::new(
        Vec3 {
            x: 1.,
            y: 2.5,
            z: 5.0,
        },
        Vec3::ZERO,
        Vec3::Y,
    )));
}

Check out the projection example to see how to change between Perspective and Orthographic.

Dependencies

~36–72MB
~1.5M SLoC