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(bevy_webgl2::DefaultPlugins) .init_resource::() .add_startup_system(setup.system()) .add_system(button_system.system()) .run(); } struct ButtonMaterials { normal: Handle, hovered: Handle, pressed: Handle, } impl FromWorld for ButtonMaterials { fn from_world(world: &mut World) -> Self { let mut materials = world.get_resource_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), (Changed, With