bevy_dev_tools 0.16.1

Collection of developer tools for the Bevy Engine
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//! Tools for debugging states.

use bevy_ecs::event::EventReader;
use bevy_state::state::{StateTransitionEvent, States};
use tracing::info;

/// Logs state transitions into console.
///
/// This system is provided to make debugging easier by tracking state changes.
pub fn log_transitions<S: States>(mut transitions: EventReader<StateTransitionEvent<S>>) {
    // State internals can generate at most one event (of type) per frame.
    let Some(transition) = transitions.read().last() else {
        return;
    };
    let name = core::any::type_name::<S>();
    let StateTransitionEvent { exited, entered } = transition;
    info!("{} transition: {:?} => {:?}", name, exited, entered);
}