add diagnostic examples
This commit is contained in:
parent
704a742661
commit
4735c68ab4
@ -109,6 +109,14 @@ path = "examples/app/headless.rs"
|
|||||||
name = "plugin"
|
name = "plugin"
|
||||||
path = "examples/app/plugin.rs"
|
path = "examples/app/plugin.rs"
|
||||||
|
|
||||||
|
[[example]]
|
||||||
|
name = "custom_diagnostic"
|
||||||
|
path = "examples/diagnostics/custom_diagnostic.rs"
|
||||||
|
|
||||||
|
[[example]]
|
||||||
|
name = "print_diagnostics"
|
||||||
|
path = "examples/diagnostics/print_diagnostics.rs"
|
||||||
|
|
||||||
[[example]]
|
[[example]]
|
||||||
name = "event"
|
name = "event"
|
||||||
path = "examples/ecs/event.rs"
|
path = "examples/ecs/event.rs"
|
||||||
|
|||||||
@ -73,7 +73,7 @@ impl PrintDiagnosticsPlugin {
|
|||||||
if state.elapsed >= state.wait_seconds {
|
if state.elapsed >= state.wait_seconds {
|
||||||
state.elapsed = 0.0;
|
state.elapsed = 0.0;
|
||||||
println!("Diagnostics:");
|
println!("Diagnostics:");
|
||||||
println!("{}", "-".repeat(50));
|
println!("{}", "-".repeat(60));
|
||||||
if let Some(ref filter) = state.filter {
|
if let Some(ref filter) = state.filter {
|
||||||
for diagnostic in filter.iter().map(|id| diagnostics.get(*id).unwrap()) {
|
for diagnostic in filter.iter().map(|id| diagnostics.get(*id).unwrap()) {
|
||||||
Self::print_diagnostic(diagnostic);
|
Self::print_diagnostic(diagnostic);
|
||||||
@ -95,7 +95,7 @@ impl PrintDiagnosticsPlugin {
|
|||||||
if state.elapsed >= state.wait_seconds {
|
if state.elapsed >= state.wait_seconds {
|
||||||
state.elapsed = 0.0;
|
state.elapsed = 0.0;
|
||||||
println!("Diagnostics (Debug):");
|
println!("Diagnostics (Debug):");
|
||||||
println!("{}", "-".repeat(30));
|
println!("{}", "-".repeat(60));
|
||||||
if let Some(ref filter) = state.filter {
|
if let Some(ref filter) = state.filter {
|
||||||
for diagnostic in filter.iter().map(|id| diagnostics.get(*id).unwrap()) {
|
for diagnostic in filter.iter().map(|id| diagnostics.get(*id).unwrap()) {
|
||||||
println!("{:#?}\n", diagnostic);
|
println!("{:#?}\n", diagnostic);
|
||||||
|
|||||||
33
examples/diagnostics/custom_diagnostic.rs
Normal file
33
examples/diagnostics/custom_diagnostic.rs
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
use bevy::{
|
||||||
|
diagnostic::{Diagnostic, DiagnosticId, Diagnostics, PrintDiagnosticsPlugin},
|
||||||
|
prelude::*,
|
||||||
|
};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
App::build()
|
||||||
|
.add_default_plugins()
|
||||||
|
// The "print diagnostics" plugin is optional. It just visualizes our diagnostics in the console
|
||||||
|
.add_plugin(PrintDiagnosticsPlugin::default())
|
||||||
|
.add_startup_system(setup_diagnostic_system.system())
|
||||||
|
.add_system(my_system.system())
|
||||||
|
.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
// All diagnostics should have a unique DiagnosticId. for each new diagnostic, generate a new random number
|
||||||
|
pub const SYSTEM_ITERATION_COUNT: DiagnosticId =
|
||||||
|
DiagnosticId::from_u128(337040787172757619024841343456040760896);
|
||||||
|
|
||||||
|
fn setup_diagnostic_system(mut diagnostics: ResourceMut<Diagnostics>) {
|
||||||
|
// Diagnostics must be initialized before measurements can be added.
|
||||||
|
// In general it's a good idea to set them up in a "startup system".
|
||||||
|
diagnostics.add(Diagnostic::new(
|
||||||
|
SYSTEM_ITERATION_COUNT,
|
||||||
|
"system_iteration_count",
|
||||||
|
10,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
fn my_system(mut diagnostics: ResourceMut<Diagnostics>) {
|
||||||
|
// Add a measurement of 10.0 for our diagnostic each time this system runs
|
||||||
|
diagnostics.add_measurement(SYSTEM_ITERATION_COUNT, 10.0);
|
||||||
|
}
|
||||||
12
examples/diagnostics/print_diagnostics.rs
Normal file
12
examples/diagnostics/print_diagnostics.rs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
use bevy::{
|
||||||
|
diagnostic::{FrameTimeDiagnosticsPlugin, PrintDiagnosticsPlugin},
|
||||||
|
prelude::*,
|
||||||
|
};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
App::build()
|
||||||
|
.add_default_plugins()
|
||||||
|
.add_plugin(FrameTimeDiagnosticsPlugin::default())
|
||||||
|
.add_plugin(PrintDiagnosticsPlugin::default())
|
||||||
|
.run();
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user