use bevy::{prelude::*, window::CursorOptions};
fn main() {
App::new()
.insert_resource(ClearColor(Color::NONE))
.add_plugins(DefaultPlugins.set(WindowPlugin {
primary_window: Some(Window {
transparent: true,
decorations: true,
window_level: bevy::window::WindowLevel::AlwaysOnTop,
..default()
}),
..default()
}))
.add_systems(Startup, setup)
.add_systems(Update, toggle_mouse_passthrough)
.run();
}
fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
commands.spawn(Camera2d);
commands.spawn((
Text::new("Hit 'P' then scroll/click around!"),
TextFont {
font: asset_server.load("fonts/FiraSans-Bold.ttf").into(),
font_size: FontSize::Px(83.0),
..default()
},
Node {
position_type: PositionType::Absolute,
bottom: px(5),
right: px(10),
..default()
},
));
}
fn toggle_mouse_passthrough(
keyboard_input: Res<ButtonInput<KeyCode>>,
mut cursor_options: Single<&mut CursorOptions>,
) {
if keyboard_input.just_pressed(KeyCode::KeyP) {
cursor_options.hit_test = !cursor_options.hit_test;
}
}