#ecs #bevy #gamedev #despawn

bevy_despawn_with

Commands extension trait for despawning multiple entities

19 releases (breaking)

0.15.0 Mar 8, 2023
0.14.0 Nov 13, 2022
0.13.0 Nov 11, 2022
0.8.0 Jun 8, 2022
0.5.0 Mar 10, 2022

#1941 in Game dev

MIT/Apache

20KB
100 lines

Bevy Despawn With

crates.io MIT/Apache 2.0 crates.io

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>)>();
}

Usage

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>)>>();
}

Examples

cargo run --example despawn_with
cargo run --example despawn_without

Notes

Supports Bevy 0.10

Dependencies

~21–56MB
~1M SLoC