Crate bevy_contrib_inspector

Source
Expand description

This crate provides the ability to annotate structs with a #[derive(Inspectable)], which opens a web interface (by default on port 5676) where you can visually edit the values of your struct live.

Your struct will then be available to you as a bevy resource.

§Example

use bevy_contrib_inspector::Inspectable;

#[derive(Inspectable, Default)]
struct Data {
    should_render: bool,
    text: String,
    #[inspectable(min = 42.0, max = 100.0)]
    size: f32,
}

Add the InspectorPlugin to your App.

use bevy_contrib_inspector::InspectorPlugin;

fn main() {
    App::build()
        .add_plugins(DefaultPlugins)
        .add_plugin(InspectorPlugin::<Data>::new())
        .add_system(your_system.system())
        // ...
        .run();
}

// fn your_system(data: Res<Data>, mut query: Query<...>) { /* */ }

To automatically open the webbrowser when starting, run your program using BEVY_INSPECTOR_OPEN=1 cargo run.

§Attributes

When deriving the Inspectable trait, you can set options such like the port the server will run on like so:

#[derive(Inspectable, Default)]
#[inspectable(port = 1234)]
struct Data {
   #[inspectable(a = 1, b = 2, c = 3)]
   field: Type,
}

The attribute on the struct will accept fields of the type InspectableOptions, while the attributes on the fields accept those of their <Type as AsHtml>::Options.

Modules§

as_html
Attribute-Options for the AsHtml trait.

Structs§

InspectableOptions
The InspectableOptions control parameters like the webserver’s port.
InspectorPlugin

Traits§

AsHtml
controls how a type is rendered in HTML
Inspectable
This trait describes how a struct should be rendered in HTML. It is meant to be derived, see the crate-level docs for that.

Derive Macros§

AsHtml
derives AsHtml
Inspectable
derives Inspectable