Skip to content

A bevy plugin to track informations about the cursor

License

Notifications You must be signed in to change notification settings

waywardmonkeys/bevy_cursor

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bevy Cursor

Latest Version Bevy Tracking Doc Status Build Status

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

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.11 0.1

About

A bevy plugin to track informations about the cursor

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%