1 个不稳定版本
0.1.0 | 2024年3月5日 |
---|
#2033 在 游戏开发
11KB
134 行
"一个简单的并发事件插件,其原理类似于 Commands,事件可以并发发送/读取,但事件的读取始终在下一个 bevy 帧中"
#[derive(Event)] struct E;
fn main() { App::new().add_event_manager::() .... ; } fn send(mut sender:EventsSender){ sender.send(e); ... } fn read(sender:EventsReader){ sender.par_iter()...//iter() }
use bevy::{ app::{App, Update}, ecs::event::Event, }; use bevy_concurrent_event::events::{ ConcurrentEvent, EventsReader, EventsSender, }; use rayon::iter::ParallelIterator;
#[derive(Event)] struct E;
pub fn main() { App::new().add_event_manager::().add_systems( Update, ( |mut s: EventsSender| s.send(E), |r: EventsReader| r.par_read().for_each(|_| {}), ), ); }
依赖项
~19–47MB
~742K SLoC