Bevy plugin to send messages after delay.
use bevy::prelude::*;
use bevy_write_after::{MessagePool, WriteAfterPlugin};
#[derive(Message)]
struct MyMessage;
fn my_main() {
App::new()
.add_message::<MyMessage>()
.add_plugins(WriteAfterPlugin)
.add_systems(Startup, setup)
.add_systems(Startup, some_system)
.add_systems(Update, on_my_message.run_if(on_message::<MyMessage>));
}
fn setup(mut commands: Commands) {
commands.spawn(MessagePool::default());
}
fn some_system(mut pool: Single<&mut MessagePool>) {
pool.write_after(MyMessage, 1.0);
}
fn on_my_message() {
println!("received my message");
}