KK
В примерах игр на Bevy нашёл только один вариант с такими "сценами" и там сделано как-то тупо:
fn update_menu_system(
game_screen: Res<crate::GameScreen>,
...
) {
if game_screen.current_screen == MENU_SCREEN {
// update menu
}
}
Можно наверное просто удалять все Entities, которые не относятся к текущей "сцене", тогда и не будут запускаться системы, которым они нужны. Но ECS-движок ведь всё рано на каждый тик будет проверять все зареганные системы, и пытаться найти для них требуемые entities. Т.е. он будет делать заведомо лишние операции. Ну и не всегда хотелось бы удалять данные - например в режиме паузы требуется только временная остановка игры с сохранением её состояния.