use avian3d::prelude::{Forces, RigidBodyForces}; use bevy::prelude::*; pub fn plugin(app: &mut App) { app.add_systems(FixedUpdate, apply_one_shot_forces); } #[derive(Component)] pub struct OneShotImpulse(pub Vec3); pub fn apply_one_shot_forces( mut commands: Commands, mut query: Query<(Entity, &OneShotImpulse, Forces)>, ) { for (entity, force, mut forces) in query.iter_mut() { forces.apply_linear_impulse(force.0); commands.entity(entity).remove::(); } }