This crate implements an extension trait on Commands
, DespawnAllCommandsExt
which has two methods despawn_all
and despawn_all_recursive
for despawning multiple entities:
fn despawn_system(
mut commands: Commands,
) {
commands.despawn_all::<(With<People>, With<Shoes>, Without<Laces>)>();
}
Add the dependency to your project's Cargo.toml [dependencies]
section:
bevy_despawn_with = "0.15.0"
Then despawn some things:
use bevy_despawn_with::DespawnAllCommandsExt;
fn despawn_system(mut commands: Commands) {
// Despawn all entities with a MenuUiMarker component
commands.despawn_all::<With<MenuUiMarker>>();
// Despawn all entities without a SomeOtherMarker component,
// and despawn those entities descendants.
commands.despawn_all_recursive::<Without<SomeOtherMarker>>();
// Despawn all entities with a MenuUiMarker component, or with a changed GlobalTransform.
commands.despawn_all::<Or<(With<MenUiMarker>, Changed<GlobalTransform>)>>();
}
cargo run --example despawn_with
cargo run --example despawn_without
Supports Bevy 0.10