#bevy #steam #bevy-plugin #gamedev

bevy-steamworks

用于集成 Steamworks SDK 的 Bevy 插件

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游戏开发

Download history 140/week @ 2024-03-31 1/week @ 2024-04-07 20/week @ 2024-06-02 6/week @ 2024-06-09 5/week @ 2024-06-16 25/week @ 2024-06-23 45/week @ 2024-06-30 42/week @ 2024-07-07 1/week @ 2024-07-14

每月113 次下载
用于 bevy_backroll

MIT/Apache

35KB
157

bevy-steamworks

crates.io Documentation License

本软件包提供了一个用于集成 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 中的任何其他资源一样访问它。客户端实现了 SendSync,可以用于通过 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