use bevy::prelude::*; use bevy::render::camera::Camera as BevyCamera; pub struct CameraPlugin; #[derive(Component, Debug)] pub struct CameraTarget; impl Plugin for CameraPlugin { fn build(&self, app: &mut App) { app.add_systems(Startup, spawn) .add_systems(PostUpdate, follow); } } fn spawn(mut commands: Commands) { let mut bundle = (Camera2dBundle::default(), IsDefaultUiCamera); bundle.0.projection.scale = 0.5; commands.spawn(bundle); } fn follow( player: Query<&Transform, With>, mut camera: Query<&mut Transform, (With, Without)>, ) { if let Ok(player) = player.get_single() { camera.single_mut().translation = player.translation } }