extern crate bevy_rosc;
use bevy::prelude::*;
use bevy_rosc::OscMethod;
use bevy_rosc::{BevyRoscPlugin, SingleAddressOscMethod};
fn startup(mut commands: Commands) {
println!("** Startup");
commands.spawn(SingleAddressOscMethod::new("/test/address".into()).unwrap());
}
fn print_received_osc_packets(
mut query: Query<&mut SingleAddressOscMethod, Changed<SingleAddressOscMethod>>,
) {
for mut osc_receiver in query.iter_mut() {
let new_msg = osc_receiver.get_message();
if let Some(msg) = new_msg {
println!(
"Method {:?} received: {:?}",
osc_receiver.get_addresses(),
msg
)
}
}
}
fn main() {
App::new()
.add_plugins(MinimalPlugins)
.add_plugins(BevyRoscPlugin::new("0.0.0.0:31337").unwrap())
.add_systems(Startup, startup)
.add_systems(Update, print_received_osc_packets)
.run();
}