Function bevy::ecs::prelude::resource_changed

pub fn resource_changed<T>(res: Res<'_, T>) -> bool
where T: Resource,
Expand description

A Condition-satisfying system that returns true if the resource of the given type has had its value changed since the condition was last checked.

The value is considered changed when it is added. The first time this condition is checked after the resource was added, it will return true. Change detection behaves like this everywhere in Bevy.


The condition will panic if the resource does not exist.


    // `resource_changed` will only return true if the
    // given resource was just changed (or added)
        // By default detecting changes will also trigger if the resource was
        // just added, this won't work with my example so I will add a second
        // condition to make sure the resource wasn't just added

fn my_system(mut counter: ResMut<Counter>) {
    counter.0 += 1;

// `Counter` hasn't been changed so `my_system` won't run world);
assert_eq!(world.resource::<Counter>().0, 0);

world.resource_mut::<Counter>().0 = 50;

// `Counter` was just changed so `my_system` will run world);
assert_eq!(world.resource::<Counter>().0, 51);