Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Migrating from 0.19 to 0.19

Observer overhaul

TransitionListener has been deleted, use observers instead:

> app.add_observer(
>     |trigger: On<LoadingCompleted>| println!("do stuff"),
> );
< active_machines.push_listener::<ReloadingInitialized<P>>(OnLoadingCompleteListener);

This allows you to use more convenient system parameter syntax to access resources and queries, but you may not use exclusive systems anymore.

If you want observers to respect ordering between themselves, you should prefer to issue commands in these instead (see related bevy issue).

Renaming Reflection Rroxies

Val<T>, Ref<T> and Mut<T> have been renamed to prevent clashes with native bevy types, as well as save a few keystrokes.

You should use: V<T>, R<T> and M<T> instead

> V<T>
< Val<T>
> R<T>
< Ref<T>
> M<T>
< Mut<T>

ScriptValue::List changes

This variant now uses VecDeque instead of Vec

Refactor of WorldAccessGuard and related types

Many functions previously living directly in WorldAccessGuard impls, now need to be accessed via the WorldExtensions trait.

Functions previously known as with_exclusive_access etc, have been split into: with_world and with_world_mut, allowing read access to the world too in some circumstances.

ReflectAccessId was removed in favour of WorldAccessRange which can be created via Into from ComponentId’s.