Path: blob/main/examples/camera/pan_camera_controller.rs
7223 views
//! Example for `PanCamera`, demonstrating basic camera controls such as panning and zooming.1//!2//! This example shows how to use the `PanCamera` controller on a 2D camera in Bevy. The camera3//! can be panned with keyboard inputs (arrow keys or WASD) and zoomed in/out using the mouse4//! wheel or the +/- keys. The camera starts with the default `PanCamera` settings, which can5//! be customized.6//!7//! Controls:8//! - Arrow keys (or WASD) to pan the camera.9//! - Mouse scroll wheel or +/- to zoom in/out.1011use bevy::camera_controller::pan_camera::{PanCamera, PanCameraPlugin};12use bevy::prelude::*;1314fn main() {15App::new()16.add_plugins(DefaultPlugins)17.add_plugins(PanCameraPlugin) // Adds the PanCamera plugin to enable camera panning and zooming controls.18.add_systems(Startup, (setup, spawn_text).chain())19.run();20}2122fn spawn_text(mut commands: Commands, camera: Query<&PanCamera>) {23commands.spawn((24Node {25position_type: PositionType::Absolute,26top: px(-16),27left: px(12),28..default()29},30children![Text::new(format!("{}", camera.single().unwrap()))],31));32}3334fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {35// Spawn a 2D Camera with default PanCamera settings36commands.spawn((Camera2d, PanCamera::default()));3738commands.spawn(Sprite::from_image(39asset_server.load("branding/bevy_bird_dark.png"),40));41}424344