bevy_cursor 0.2.0

A bevy plugin to track information about the cursor
Documentation

Bevy Cursor

Latest Version Bevy Tracking Doc Status Build Status

Bevy Cursor is a bevy plugin to track information about the cursor.


The following cursor information is 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);

Example

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");
    }
}

Features

  • 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 compatible version

bevy bevy_cursor
0.12 0.2
0.11 0.1