bevy_spawn_observer
Warning
This crate is no longer maintained and will not be updated to new versions of Bevy past 0.18.
You can already use the experimental bevy::ui_widgets::observe
since 0.17, and a proper upstream solution is expected to land at some point
(see #14204 and #17607).
This crate provides SpawnObserver,
a custom SpawnableList
enabling you to add observers to your bundles.
use bevy::{ecs::spawn::SpawnWith, prelude::*};
use bevy_spawn_observer::SpawnObserver;
// With `bevy_spawn_observer`:
fn button_new() -> impl Bundle {
(
Button,
Children::spawn(SpawnObserver::new(|_: Trigger<Pointer<Click>>| {
info!("You clicked me!");
})),
)
}
// Without `bevy_spawn_observer`:
fn button_old() -> impl Bundle {
(
Node::default(),
Children::spawn(SpawnWith(|parent: &mut ChildSpawner| {
parent.spawn(Button).observe(|_: Trigger<Pointer<Click>>| {
info!("You clicked me!");
});
})),
)
}See a full example here.
Bevy version compatibility
bevy version |
bevy_spawn_observer version |
|---|---|
| 0.18 | 0.3 |
| 0.17 | 0.2 |
| 0.16 | 0.1 |
License
This crate is available under either of MIT or Apache-2.0 at your choice.