//! Demonstrates how to grab and hide the mouse cursor. use bevy::prelude::*; use bevy::window::CursorGrabMode; fn main() { App::new() .add_plugins(DefaultPlugins) .add_system(grab_mouse) .run(); } // This system grabs the mouse when the left mouse button is pressed // and releases it when the escape key is pressed fn grab_mouse( mut windows: ResMut, mouse: Res>, key: Res>, ) { let window = windows.primary_mut(); if mouse.just_pressed(MouseButton::Left) { window.set_cursor_visibility(false); window.set_cursor_grab_mode(CursorGrabMode::Locked); } if key.just_pressed(KeyCode::Escape) { window.set_cursor_visibility(true); window.set_cursor_grab_mode(CursorGrabMode::None); } }