pub fn on_message<M: Message>(reader: MessageReader<'_, '_, M>) -> bool
Expand description
A SystemCondition
-satisfying system that returns true
if there are any new messages of the given type since it was last called.
ยงExample
app.add_systems(
my_system.run_if(on_message::<MyMessage>),
);
#[derive(Message)]
struct MyMessage;
fn my_system(mut counter: ResMut<Counter>) {
counter.0 += 1;
}
// No new `MyMessage` messages have been push so `my_system` won't run
app.run(&mut world);
assert_eq!(world.resource::<Counter>().0, 0);
world.resource_mut::<Messages<MyMessage>>().write(MyMessage);
// A `MyMessage` message has been pushed so `my_system` will run
app.run(&mut world);
assert_eq!(world.resource::<Counter>().0, 1);