Bevy Cursor is a bevy
plugin to track informations about the cursor.
The following cursor informations are available via the CursorInfo
resource:
- The entity id of the window on which the cursor is currently;
- The entity if of the camera on which the cursor is currently;
- The position of the cursor on the window (logical position);
- The 2D world position of the cursor (if the feature
2d
is enabled); - The ray emitted by the cursor through the camera (if the feature
3d
is enabled);
use bevy::prelude::*;
use bevy_cursor::prelude::*;
fn main() {
App::new()
.add_plugins((DefaultPlugins, CursorInfoPlugin))
.add_systems(Startup, setup)
.add_systems(Update, print_cursor_position)
.run();
}
fn setup(mut commands: Commands) {
// A camera is required to compute the world position of the cursor
commands.spawn(Camera2dBundle::default());
}
fn print_cursor_position(cursor: Res<CursorInfo>) {
if let Some(position) = cursor.position() {
info!("Cursor position: {position:?}");
} else {
info!("The cursor is not in any window");
}
}
2d
opt-in the computation of the world position of the cursor.3d
opt-in the computation of the ray emitted by the cursor through the camera (disabled by default).
bevy | bevy_cursor |
---|---|
0.11 | 0.1 |