Struct bevy_asset::AssetServer

source ·
pub struct AssetServer { /* private fields */ }
Expand description

Loads assets from the filesystem in the background.

The asset server is the primary way of loading assets in bevy. It keeps track of the load state of the assets it manages and can even reload them from the filesystem with

// The asset plugin can be configured to watch for asset changes.
app.add_plugin(AssetPlugin {
    watch_for_changes: true,
    ..Default::default()
});

The asset server is a resource, so in order to access it in a system you need a Res accessor, like this:

use bevy_asset::{AssetServer, Handle};
use bevy_ecs::prelude::{Commands, Res};


fn my_system(mut commands: Commands, asset_server: Res<AssetServer>)
{
    // Now you can do whatever you want with the asset server, such as loading an asset:
    let asset_handle: Handle<Image> = asset_server.load("cool_picture.png");
}

See the asset_loading example for more information.

Implementations§

source§

impl AssetServer

source

pub fn new<T: AssetIo>(source_io: T) -> Self

Creates a new asset server with the provided asset I/O.

source

pub fn with_boxed_io(asset_io: Box<dyn AssetIo>) -> Self

Creates a new asset server with a boxed asset I/O.

source

pub fn asset_io(&self) -> &dyn AssetIo

Returns the associated asset I/O.

source

pub fn add_loader<T>(&self, loader: T)where T: AssetLoader,

Adds the provided asset loader to the server.

If loader has one or more supported extensions in conflict with loaders that came before it, it will replace them.

source

pub fn get_handle<T: Asset, I: Into<HandleId>>(&self, id: I) -> Handle<T>

Gets a strong handle for an asset with the provided id.

source

pub fn get_handle_untyped<I: Into<HandleId>>(&self, id: I) -> HandleUntyped

Gets an untyped strong handle for an asset with the provided id.

source

pub fn get_handle_path<H: Into<HandleId>>( &self, handle: H ) -> Option<AssetPath<'_>>

Gets the source path of an asset from the provided handle.

source

pub fn get_load_state<H: Into<HandleId>>(&self, handle: H) -> LoadState

Gets the load state of an asset from the provided handle.

source

pub fn get_group_load_state( &self, handles: impl IntoIterator<Item = HandleId> ) -> LoadState

Gets the overall load state of a group of assets from the provided handles.

This method will only return LoadState::Loaded if all assets in the group were loaded successfully.

source

pub fn load<'a, T: Asset, P: Into<AssetPath<'a>>>(&self, path: P) -> Handle<T>

Queues an Asset at the provided relative path for asynchronous loading.

The absolute path to the asset is "ROOT/ASSET_FOLDER_NAME/path". Its extension is then extracted to search for an asset loader. If an asset path contains multiple dots (e.g. foo.bar.baz), each level is considered a separate extension and the asset server will try to look for loaders of bar.baz and baz assets.

By default the ROOT is the directory of the Application, but this can be overridden by setting the "BEVY_ASSET_ROOT" or "CARGO_MANIFEST_DIR" environment variable (see https://doc.rust-lang.org/cargo/reference/environment-variables.html) to another directory. When the application is run through Cargo, then "CARGO_MANIFEST_DIR" is automatically set to the root folder of your crate (workspace).

The name of the asset folder is set inside the AssetPlugin. The default name is "assets".

The asset is loaded asynchronously, and will generally not be available by the time this calls returns. Use AssetServer::get_load_state to determine when the asset is effectively loaded and available in the Assets collection. The asset will always fail to load if the provided path doesn’t contain an extension.

source

pub fn load_untyped<'a, P: Into<AssetPath<'a>>>(&self, path: P) -> HandleUntyped

Queues the Asset at the provided path for loading and returns an untyped handle.

See load.

source

pub fn reload_asset<'a, P: Into<AssetPath<'a>>>(&self, path: P)

Force an Asset to be reloaded.

This is useful for custom hot-reloading or for supporting watch_for_changes in custom AssetIo implementations.

source

pub fn load_folder<P: AsRef<Path>>( &self, path: P ) -> Result<Vec<HandleUntyped>, AssetServerError>

Loads assets from the specified folder recursively.

Errors
source

pub fn free_unused_assets(&self)

Frees unused assets, unloading them from memory.

source

pub fn mark_unused_assets(&self)

Iterates through asset references and marks assets with no active handles as unused.

Trait Implementations§

source§

impl Clone for AssetServer

source§

fn clone(&self) -> AssetServer

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Resource for AssetServerwhere Self: Send + Sync + 'static,

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Downcast for Twhere T: Any,

source§

fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
source§

impl<T> DowncastSync for Twhere T: Any + Send + Sync,

source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync + 'static>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> TypeData for Twhere T: 'static + Send + Sync + Clone,

source§

fn clone_type_data(&self) -> Box<dyn TypeData + 'static, Global>

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> Event for Twhere T: Send + Sync + 'static,