//! Demonstrates how to spawn and control a virtual pointer, useful for integration testing or //! something like a gamepad-controlled software pointer. use bevy::{ prelude::*, render::camera::RenderTarget, window::{PrimaryWindow, WindowRef}, }; use bevy_mod_picking::prelude::*; fn main() { App::new() .add_plugins(( DefaultPlugins.set(low_latency_window_plugin()), DefaultPickingPlugins, // bevy_egui::EguiPlugin, // Nicer pointer debug overlay, useful for this example. )) .insert_resource(DebugPickingMode::Normal) .add_systems(Startup, setup) .add_systems(Update, move_virtual_pointer) .run(); } #[derive(Component)] pub struct VirtualPointer; fn move_virtual_pointer( time: Res