Skip to content

Commit 987a62f

Browse files
Add events as a resource to avoid cleanup
1 parent c7a90b1 commit 987a62f

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

examples/ecs/event_consumer.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
use bevy::core::FixedTimestep;
21
use bevy::prelude::*;
2+
use bevy::{app::Events, core::FixedTimestep};
33

44
/// Events are automatically cleaned up after two frames when intialized via `.add_event`.
55
/// To bypass this, you can simply add the Events::<T> resource manually.
@@ -17,7 +17,8 @@ use bevy::prelude::*;
1717
fn main() {
1818
App::build()
1919
.add_plugins(DefaultPlugins)
20-
.add_event::<MyEvent>()
20+
// We can't use .add_event or our events will be cleaned up too soon
21+
.init_resource::<Events<MyEvent>>()
2122
.add_system(
2223
event_trigger_system
2324
.system()
@@ -42,14 +43,15 @@ struct MyEvent {
4243
fn event_trigger_system(time: Res<Time>, mut my_events: EventWriter<MyEvent>) {
4344
my_events.send(MyEvent {
4445
message: format!(
45-
"This event was sent at {}",
46+
"This event was sent at {} milliseconds",
4647
time.time_since_startup().as_millis()
4748
)
4849
.to_string(),
4950
});
5051
}
5152

5253
// reads events as soon as they come in
54+
// FIXME: stops responding after the first time events are consumed
5355
fn event_listener_system(mut events: EventReader<MyEvent>) {
5456
for _ in events.iter() {
5557
info!("I heard an event!");

0 commit comments

Comments
 (0)