4个版本 (2个重大更新)
0.3.0 | 2024年7月21日 |
---|---|
0.2.1 | 2024年2月18日 |
0.2.0 | 2024年2月17日 |
0.1.0 | 2024年2月12日 |
#809 in 游戏开发
每月132次下载
37KB
288 行
bevy_ehttp
一个同时适用于原生和WASM的ehttp Bevy插件。
简单请求会在完成后触发一次 RequestCompleted(pub Result<Response, String>)
事件。
还可以调用类型化请求,这将允许通过使用 RequestBundle<T>
将响应反序列化为指定的类型。更多详情请查看 typed.rs 示例。
示例
use bevy::{prelude::*, time::common_conditions::on_timer};
use bevy_ehttp::prelude::*;
fn main() {
App::new()
.add_plugins((MinimalPlugins, HttpPlugin))
.add_systems(Update, handle_response)
.add_systems(
Update,
send_request.run_if(on_timer(std::time::Duration::from_secs(1))),
)
.run()
}
fn send_request(mut commands: Commands) {
let req = ehttp::Request::get("https://api.ipify.org?format=json");
commands.spawn(HttpRequest(req));
}
fn handle_response(mut requests: EventReader<RequestCompleted>) {
for request in &mut requests.read() {
match &**request {
Ok(response) => println!("response: {:?}", response.text()),
Err(e) => println!("response error: {:?}", e),
}
}
}
感谢
非常感谢Bevy引擎的创建者以及foxzool用户创建bevy_http_client,这个插件就是基于它开发的。
许可证
bevy_ehttp
可以选择在MIT和Apache 2.0下双许可。
Bevy兼容性表
Bevy版本 | 框架版本 |
---|---|
0.14 | 0.3 |
0.13 | 0.2 |
0.12 | 0.1 |
依赖
~34–71MB
~1M SLoC