bevy_asset_loader 0.1.0

Bevy plugin for asset loading
Documentation

Bevy asset loader

The goal of this crate is to offer an easy way for bevy games to load all their assets.

# use bevy_asset_loader::{AssetLoaderPlugin, AssetCollection};
# use bevy_kira_audio::{AudioPlugin, AudioSource, Audio};
# use bevy::prelude::*;
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>
}

// since this function runs in [MyState::Next], we know our assets are loaded and [MyAudioAssets] is a resource
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
}