13 个版本 (破坏性更新)
0.11.0 | 2024年2月23日 |
---|---|
0.9.0 | 2024年2月17日 |
0.8.0 | 2023年9月13日 |
0.7.0 | 2023年3月10日 |
0.1.2 | 2021年6月15日 |
549 在 游戏开发
每月113 次下载
用于 bevy_backroll
35KB
157 行
bevy-steamworks
本软件包提供了一个用于集成 Steamworks SDK 的 Bevy 插件。
安装
将以下内容添加到您的 Cargo.toml
[dependencies]
bevy-steamworks = "0.11"
steamworks 软件包包含与兼容版本的 SDK 的可重新分发的动态库。目前是 v158a 版本。
如果您想启用 serde 支持,请添加以下内容
[dependencies]
bevy-steamworks = { version = "0.9", features = ["serde"] }
使用方法
要将插件添加到您的应用程序中,只需将 SteamworksPlugin
添加到您的 App
。这将需要 Valve 提供给您用于初始化的 AppId
。
use bevy::prelude::*;
use bevy_steamworks::*;
fn main() {
// Use the demo Steam AppId for SpaceWar
App::new()
// it is important to add the plugin before `RenderPlugin` that comes with `DefaultPlugins`
.add_plugins(SteamworksPlugin::init_app(480).unwrap())
.add_plugins(DefaultPlugins)
.run()
}
该插件将 Client
添加为 Bevy ECS 资源,可以像访问 Bevy 中的任何其他资源一样访问它。客户端实现了 Send
和 Sync
,可以用于通过 SDK 从 Bevy 的任何线程发送请求。
该插件将自动在每个 First
调度中调用 Bevy 的 SingleClient::run_callbacks
,因此无需手动运行。
所有回调都作为 Events
转发,并可以按 Bevy 习惯的方式监听
use bevy::prelude::*;
use bevy_steamworks::*;
fn steam_system(steam_client: Res<Client>) {
for friend in steam_client.friends().get_friends(FriendFlags::IMMEDIATE) {
println!("Friend: {:?} - {}({:?})", friend.id(), friend.name(), friend.state());
}
}
fn main() {
// Use the demo Steam AppId for SpaceWar
App::new()
// it is important to add the plugin before `RenderPlugin` that comes with `DefaultPlugins`
.add_plugins(SteamworksPlugin::init_app(480).unwrap())
.add_plugins(DefaultPlugins)
.add_systems(Startup, steam_system)
.run()
}
支持的 Bevy 版本
Bevy 版本 | bevy_steamworks |
---|---|
0.13 | 0.10, 0.11 |
0.12 | 0.9 |
0.11 | 0.8 |
0.10 | 0.7 |
0.9 | 0.6 |
0.8 | 0.5 |
0.7 | 0.4 |
0.6 | 0.2, 0.3 |
0.5 | 0.1 |
依赖项
~30MB
~380K SLoC