#gyroscope #bevy #bevy-plugin #gamedev

bevy_gyroscope

A Bevy plugin that provides gyroscope functionality

1 unstable release

0.1.0 Nov 29, 2024

#565 in Game dev

Download history 104/week @ 2024-11-25 12/week @ 2024-12-02 5/week @ 2024-12-09

121 downloads per month

Custom license

6KB
64 lines

Bevy Gyroscope Plugin

[!WARNING]
This plugin currently only supports iOS devices.

A Bevy plugin that provides gyroscope functionality.

Installation

You can add this plugin to your project using cargo:

cargo add bevy_gyroscope

Or manually add it to your Cargo.toml:

[dependencies]
bevy_gyroscope = "0.1.0"  # replace with actual version

Usage

use bevy::prelude::*;
use bevy_gyroscope::{GyroscopePlugin, Gyroscope};

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        // Add the gyroscope plugin with default settings (60Hz update frequency)
        .add_plugins(GyroscopePlugin::default())
        .add_systems(Update, use_gyroscope_data)
        .run();
}

fn use_gyroscope_data(gyroscope: Res<Gyroscope>) {
    println!("Gyroscope: x={}, y={}, z={}", 
        gyroscope.x, 
        gyroscope.y, 
        gyroscope.z
    );
}

Custom Configuration

You can customize the update frequency when adding the plugin:

.add_plugins(GyroscopePlugin { frequency: 120.0 })

Resource Components

The plugin provides a Gyroscope resource that contains the rotation delta (change in rotation) for the current frame:

  • x: Change in rotation around the x-axis (in radians) per frame
  • y: Change in rotation around the y-axis (in radians) per frame
  • z: Change in rotation around the z-axis (in radians) per frame

License

MIT License

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Dependencies

~27MB
~519K SLoC