Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tguichaoua/bevy_cursor

A bevy plugin to track informations about the cursor
https://github.com/tguichaoua/bevy_cursor

bevy cursor helper rust

Last synced: 3 days ago
JSON representation

A bevy plugin to track informations about the cursor

Awesome Lists containing this project

README

        

# Bevy Cursor

[![Latest Version]][crates.io] [![Bevy Tracking]][bevy tracking doc] [![Doc Status]][docs] [![Build Status]][actions]

[Latest Version]: https://img.shields.io/crates/v/bevy_cursor.svg
[crates.io]: https://crates.io/crates/bevy_cursor
[Bevy Tracking]: https://img.shields.io/badge/Bevy%20tracking-released%20version-lightblue?labelColor=555555&logo=bevy
[bevy tracking doc]: https://github.com/bevyengine/bevy/blob/main/docs/plugins_guidelines.md#main-branch-tracking
[Doc Status]: https://docs.rs/bevy_cursor/badge.svg
[docs]: https://docs.rs/bevy_cursor
[Build Status]: https://github.com/tguichaoua/bevy_cursor/actions/workflows/ci.yml/badge.svg?branch=main
[actions]: https://github.com/tguichaoua/bevy_cursor/actions/workflows/ci.yml

**Bevy Cursor is a [`bevy`] plugin to track information about the cursor.**

---

This plugin will track information about the position of the cursor, the window, and the camera that contains it and compute the position of the pointed point in the world position system.

## Example

```rust
use bevy::prelude::*;
use bevy_cursor::prelude::*;

fn main() {
App::new()
.add_plugins((DefaultPlugins, TrackCursorPlugin))
.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) {
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.

## Bevy compatible version

| bevy | bevy_cursor |
| ---- | ----------- |
| 0.14 | 0.4 |
| 0.13 | 0.3 |
| 0.12 | 0.2 |
| 0.11 | 0.1 |

[`bevy`]: https://github.com/bevyengine/bevy
[ray]: https://docs.rs/bevy/0.14.0/bevy/math/struct.Ray3d.html