9 releases
new 0.2.0 | Dec 10, 2024 |
---|---|
0.1.7 | Nov 14, 2024 |
0.1.5 | Oct 9, 2024 |
0.1.3 | Sep 18, 2024 |
#744 in Game dev
863 downloads per month
54KB
1K
SLoC
bevy_map_camera
A 3D camera controller inspired by Google Maps, f4maps and Charge Finder.
Based upon LookTransform, LookAngles and Orbital Camera Controller from smooth-bevy-cameras
.
Features
- Orbital camera
- Zoom towards pointer
- Grab pan
- Configurable height
- 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
, part ofdefault
features.- Implemented for
LookTransform
- Implemented for
- Supports Tweening through
bevy_tweening
, requiresbevy_tweening
feature.- Lenses
LookTransformLens
GrabHeightLens
- Lenses
Quick Start
use bevy::prelude::*;
use bevy_map_cam::{MapCamera, 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,
mut meshes: ResMut<Assets<Mesh>>,
mut materials: ResMut<Assets<StandardMaterial>>,
) {
// plane
commands.spawn((
Mesh3d(meshes.add(Plane3d::default().mesh().size(10., 10.))),
MeshMaterial3d(materials.add(Color::from(DARK_GREEN))),
));
// Camera
commands.spawn(MapCamera);
}
Check out the projection example to see how to change between Perspective and Orthographic.
Compatible Bevy versions
The main
branch is compatible with the latest Bevy release.
bevy_map_camera | bevy |
---|---|
0.2 | 0.15 |
0.1 | 0.14 |
Dependencies
~42–80MB
~1.5M SLoC