rust bevy states code example
Example: rust bevy states
#[derive(Clone)]
enum AppState {
Loading,
Menu,
InGame
}
app.add_resource(State::new(AppState::Loading));
app.add_stage_after(stage::UPDATE, "my_stage", StateStage::<AppState>::default());
// Bind systems to run when state changes or is running
app.on_state_enter("my_stage", AppState::Menu, some_system.system());
app.on_state_update("my_stage", AppState::Menu, some_system.system());
app.on_state_exit("my_stage", AppState::Menu, some_system.system());
// Changing state
fn some_system(mut state: ResMut<State<AppState>>) {
state.set_next(AppState::InGame).unwrap();
}