The goal of this crate is to offer an easy way for bevy games to load all their assets.
fn main() {
App::build()
.add_state(MyStates::Load)
.add_plugins(DefaultPlugins)
.add_plugin(AudioPlugin)
.add_plugin(AssetLoaderPlugin::<MyAudioAssets, _>::new(
MyStates::Load,
MyStates::Next,
))
.add_system_set(SystemSet::on_update(MyStates::Next).with_system(use_asset_handles.system()))
.run();
}
#[derive(AssetCollection)]
struct MyAudioAssets {
#[asset(path = "walking.ogg")]
walking: Handle<AudioSource>,
#[asset(path = "flying.ogg")]
flying: Handle<AudioSource>
}
fn use_asset_handles(audio_assets: Res<MyAudioAssets>, audio: Res<Audio>) {
audio.play(audio_assets.flying.clone());
}
#[derive(Clone, Eq, PartialEq, Debug, Hash)]
enum MyStates {
Load,
Next
}