Skip to main content

enabling_disabling_diagnostic/
enabling_disabling_diagnostic.rs

1//! Shows how to disable/re-enable a Diagnostic during runtime
2
3use std::time::Duration;
4
5use bevy::{
6    diagnostic::{DiagnosticsStore, FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin},
7    prelude::*,
8    time::common_conditions::on_timer,
9};
10
11fn main() {
12    App::new()
13        .add_plugins((
14            DefaultPlugins,
15            FrameTimeDiagnosticsPlugin::default(),
16            LogDiagnosticsPlugin::default(),
17        ))
18        .add_systems(
19            Update,
20            toggle.run_if(on_timer(Duration::from_secs_f32(10.0))),
21        )
22        .run();
23}
24
25fn toggle(mut store: ResMut<DiagnosticsStore>) {
26    for diag in store.iter_mut() {
27        info!("toggling diagnostic {}", diag.path());
28        diag.is_enabled = !diag.is_enabled;
29    }
30}