5 个版本 (破坏性更新)
0.6.0 | 2024年7月10日 |
---|---|
0.5.0 | 2024年2月23日 |
0.3.0 | 2023年11月7日 |
0.2.0 | 2023年7月10日 |
0.1.0 | 2023年3月10日 |
#1007 in 游戏开发
71 个月下载量
在 4 crates 中使用
7KB
bevy_crossbeam_event
从 crossbeam 通道触发 Bevy 事件。
如果您需要处理第三方库中的回调等,例如 steamworks-rs
,或从 tracing
层获取事件,这将很有用。
用法
使用 .add_crossbeam_event::<EventType>
将事件添加到您的应用程序中
#[derive(Clone, Debug)]
struct LobbyJoined(Lobby);
impl Plugin for MyPlugin {
fn build(&self, app: &mut App) {
app.add_crossbeam_event::<LobbyJoined>();
app.add_startup_system(setup);
app.add_system(handle_lobby_joined);
}
}
通过使用 Res<CrossbeamEventSender<EventType>>
触发事件(这可以克隆并发送到回调中)
fn setup(service: Res<ThirdPartyCode>, sender: Res<CrossbeamEventSender<LobbyJoined>>) {
let sender = sender.clone();
service.join_lobby(id, move |lobby| {
sender.send(LobbyJoined(lobby));
});
}
像处理正常的 Bevy 事件一样处理事件(它们就是)
fn handle_lobby_joined(mut lobby_joined_events: EventReader<LobbyJoined>) {
for lobby in lobby_joined_events.iter() {
info!("lobby joined: {lobby:?}");
}
}
Bevy 版本支持
main
分支针对最新的 bevy 发布版。
bevy | bevy_crossbeam_event |
---|---|
0.14 | 0.6, main |
0.13 | 0.5 |
0.12 | 0.3 |
0.11 | 0.2 |
0.10 | 0.1 |
许可证
bevy_crossbeam_event
可以根据您的选择使用以下许可证之一双许可:
- MIT 许可证(./LICENSE-MIT 或 http://opensource.org/licenses/MIT)
- Apache 许可证,版本 2.0(./LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
。
贡献
欢迎 PR!
依赖关系
~23MB
~411K SLoC