Hanabi — a particle system plugin for the Bevy game engine.
This plugin is only compatible with Bevy v0.6.
Add the Hanabi plugin to your app:
rust
App::default()
.add_plugins(DefaultPlugins)
.add_plugin(HanabiPlugin)
.run();
Create an EffectAsset
describing a visual effect:
```rust
fn setup(mut effects: ResMut
// Create the effect asset
let effect = effects.add(EffectAsset {
name: "MyEffect".to_string(),
// Maximum number of particles alive at a time
capacity: 32768,
// Spawn at a rate of 5 particles per second
spawner: Spawner::new(SpawnMode::rate(5.)),
..Default::default()
}
// On spawn, randomly initialize the position and velocity
// of the particle over a sphere of radius 2 units, with a
// radial initial velocity of 6 units/sec away from the
// sphere center.
.init(PositionSphereModifier {
center: Vec3::ZERO,
radius: 2.,
dimension: ShapeDimension::Surface,
speed: 6.,
})
// Every frame, add a gravity-like acceleration downward
.update(AccelModifier {
accel: Vec3::new(0., -3., 0.),
})
// Render the particles with a color gradient over their
// lifetime.
.render(ColorOverLifetimeModifier { gradient })
);
} ```
Use a ParticleEffectBundle
to create an effect instance from an existing asset:
rust
commands
.spawn()
.insert(Name::new("MyEffectInstance"))
.insert_bundle(ParticleEffectBundle {
effect: ParticleEffect::new(effect),
transform: Transform::from_translation(Vec3::new(0., 1., 0.)),
..Default::default()
});
See the examples/
folder.
The main
branch is compatible with the latest Bevy release.
Compatibility of bevy_hanabi
versions:
| bevy_hanabi
| bevy
|
| :-- | :-- |
| 0.1
| 0.6
|