use bevy::prelude::*; /// This example illustrates how to create a button that changes color and text based on its interaction state. fn main() { App::build() .add_plugins(DefaultPlugins) .init_resource::() .add_startup_system(setup) .add_system(button_system) .run(); } struct ButtonMaterials { normal: Handle, hovered: Handle, pressed: Handle, } impl FromResources for ButtonMaterials { fn from_resources(resources: &Resources) -> Self { let mut materials = resources.get_mut::>().unwrap(); ButtonMaterials { normal: materials.add(Color::rgb(0.15, 0.15, 0.15).into()), hovered: materials.add(Color::rgb(0.25, 0.25, 0.25).into()), pressed: materials.add(Color::rgb(0.35, 0.75, 0.35).into()), } } } fn button_system( button_materials: Res, mut interaction_query: Query< (&Interaction, &mut Handle, &Children), (Mutated, With