Steamworks 文献库
Steam 界面

原文内容有作更新

此页原文在翻译版发布之后作了更新。
点击此处查看此页更新后的英文版本。

概览

Steam 界面是 Steam 用户接口的一部分,激活后可覆盖于几乎所有通过 Steam 启动的游戏上。用户可通过界面打开好友名单、网页浏览器、聊天并购买游戏内 DLC。

在游戏中开启界面的默认快捷键是 SHIFT+TAB,但可在Steam->设置对话框中更改。

要求

游戏本身无需做任何改动,界面会自动挂载到所有通过 Steam 启动的游戏中。在开发游戏及调试运行游戏时,可通过调用 SteamAPI_Init 加载 Steam 界面。因此在初始化 OpenGL/D3D 设备前需确保调用 SteamAPI_Init,否则界面无法挂载。

界面支持使用 DirectX 7 - 12、OpenGL和 Vulkan 的游戏,但目前并不支持Metal。在软件栅格化(Software-Rasterized)游戏中无法使用。
备注:“软件”型应用将自动禁用界面功能。

在应用中激活界面

Steamworks API 中有一组函数可直接激活游戏界面。

界面向游戏的通信

根据用户在功能面板的操作,Steam 将向您的游戏发送如下信号(回调):

常见问题

备注:您也可在客服网站有关话题中找到更多答案,请见无法激活Steam 社区界面

问:为什么 Steam界面会使我的应用崩溃?

答:Steam 界面应用在数千款游戏中,已经过非常彻底的测试,因此很少引起崩溃。不过它注入游戏的方式确实在渲染 API 时经常引起内存泄漏或内存损坏,但一般不影响游戏运行。

例如用 DirectX 诊断界面崩溃问题,请尝试使用 d3d 调试运行时工具(debug runtime)找出 D3D 出错的原因,调试时开启所有溢出级别(信息/警告/错误/注意)。这也许可以找出孤立 d3d 资源。如无法通过此方法发现问题,这可能是一般的内存损坏问题。如问题总是在关闭游戏时出现,则有可能是关闭排序问题,是游戏在关闭时无法清理导致的。

如调试后应用仍在界面发生崩溃,请在 Steamworks 开发组中通知我们。

问:为什么我的应用中没有出现 Steam 界面?

答:首先请确认是否符合以上 。如果已符合要求但界面仍不出现,请确认是通过 Steam 客户端直接从大厅/快速启动列表或是调用 SteamAPI_RestartAppIfNecessary 启动应用。