Client (客户端)

访问steam客户端主入口点相关接口

提供了客户端对steamworks所有可用的API。

1. 基本用法

use steamworks::{Client};

let (client, single) = Client::init().unwrap();

通过这段代码获取客户端实例,client 就是客户端实例,接下来的所有方法都通过client实例调用。

在程序运行的目录下,必须有 steam_appid.txt 文件,里面保存了你所开发的steam应用id。如果你还没有申请,请使用 480
除了 steam_appid.txt 文件外,steamworks-rs 库在程序运行的目录下还需要官方提供的api文件,路径为: target\<release-type>\build\steamworks-sys-<hash>\out

2. 初始化

pub fn init() -> SIResult<(Client<ClientManager>, SingleClient<ClientManager>)>

尝试初始化steamworks api,并返回一个客户端来访问其余api。

每个程序应该只有一个实例。

异常

这些情况可能会发生异常:

  • Steam 客户端未运行。 需要有运行的 Steam 客户端才能提供各种 Steamworks 接口的实现。

  • Steam 客户端无法判定游戏的 App ID。 如果游戏没有通过steam运行,可以通过在当前工作目录中放置带有ID的 steam_appid.txt 来提供。或者,您可以使用 Client::init_app(<app_id>) 强制指定应用ID。

  • 您的应用程序运行的 OS 用户上下文,与 Steam 客户端并不相同,比如用户或管理员访问权限级别不同。

  • 确定您在当前活跃的 Steam 帐户中拥有该 App ID 的许可。 您的游戏必须显示在您的 Steam 库中。

  • 您的 AppID 未完全设置,如 发行状态:不可用,或缺失默认程序包。

3. 根据AppId初始化应用

pub fn init_app<ID: Into<AppId>>(
    app_id: ID
) -> SIResult<(Client<ClientManager>, SingleClient<ClientManager>)>

尝试使用指定的app ID初始化Steamworks API,并返回一个客户端来访问其余api。

每个程序应该只有一个实例。

异常

这些情况可能会发生异常:

  • Steam 客户端未运行。 需要有运行的 Steam 客户端才能提供各种 Steamworks 接口的实现。

  • 您的应用程序运行的 OS 用户上下文,与 Steam 客户端并不相同,比如用户或管理员访问权限级别不同。

  • 确定您在当前活跃的 Steam 帐户中拥有该 App ID 的许可。 您的游戏必须显示在您的 Steam 库中。

  • 您的 AppID 未完全设置,如 发行状态:不可用,或缺失默认程序包。

4. 注册回调

pub fn register_callback<C, F>(&self, f: F) -> CallbackHandle<Manager>
where
    C: Callback,
    F: FnMut(C) + 'static + Send

注册传递的函数作为给定类型的回调。

当接受到事件时,回调将在调用 run_callbacks 的线程上运行。

5. 获取应用接口

pub fn apps(&self) -> Apps<Manager>

返回一个访问 Steam 应用接口 的访问器。

6. 获取工具接口

pub fn utils(&self) -> Utils<Manager>

返回一个访问 Steam 工具接口 的访问器。

7. 获取匹配大厅接口

pub fn matchmaking(&self) -> Matchmaking<Manager>

返回一个访问 Steam 匹配大厅 接口的访问器。

8. 获取网络接口

pub fn networking(&self) -> Networking<Manager>

返回一个访问 Steam 网络接口 的访问器。

9. 获取好友接口

pub fn friends(&self) -> Friends<Manager>

返回一个访问 Steam 好友接口 的访问器。

10. 获取输入接口

pub fn input(&self) -> Input<Manager>

返回一个访问 Steam 输入接口 的访问器。

11. 获取用户接口

pub fn user(&self) -> User<Manager>

返回一个访问 Steam 用户接口 的访问器。

12. 获取用户统计接口

pub fn user_stats(&self) -> UserStats<Manager>

返回一个访问 Steam 用户统计接口 的访问器。

13. 获取远程畅玩接口

pub fn remote_play(&self) -> RemotePlay<Manager>

返回一个访问 Steam 远程畅玩接口 的访问器。

14. 获取远程存储接口

pub fn remote_storage(&self) -> RemoteStorage<Manager>

返回一个访问 Steam 远程存储接口 的访问器。

15. 获取创意工坊接口

pub fn ugc(&self) -> UGC<Manager>

返回一个访问 Steam UGC(Steam 创意工坊)接口 的访问器。

16. 获取网络消息接口

pub fn networking_messages(&self) -> NetworkingMessages<Manager>

访问 Steam 网络消息接口

17. 获取网络sockets接口

pub fn networking_sockets(&self) -> NetworkingSockets<Manager>

访问 Steam 网络sockets接口

18. 获取网络工具接口

pub fn networking_utils(&self) -> NetworkingUtils<Manager>

访问 Steam 网络工具接口