Steam 叠加界面 (Steamworks 文献库)

概览

Steam 叠加界面是 Steam 用户 UI 的一部分,激活后可覆盖于几乎所有通过 Steam 启动的游戏上。 用户可通过界面打开好友列表及网页浏览器,还可聊天并进行游戏内 DLC 购买。

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

要求

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

叠加界面支持使用 DirectX 7 - 12、OpenGL、Metal 和 Vulkan 的游戏, 在软件栅格化(Software-Rasterized)游戏中无法使用。

MacOS:要在 10.15 (Catalina) 上支持叠加界面,则需要将某些权利添加至您的生成版本配置当中。 请在平台页面查看详情。

注意: “软件”型应用将自动禁用叠加界面功能。 如果您需要启用叠加界面,可以依循以下步骤:

确保您的 Steam 帐户有“编辑应用元数据”权限
从应用的登陆页导航至 >“编辑 Steamworks 设置”> “安装”选项卡 > "通用安装"
为应用程序勾选“启用 Steam 叠加界面”复选框
发布

在应用中激活叠加界面

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

ISteamFriends::ActivateGameOverlay
此函数可在游戏内叠加界面上打开指定对话框。
ISteamFriends::ActivateGameOverlayToUser
此函数可在游戏内叠加界面上打开指定对话框,并传入用户信息,作为上下文。
ISteamFriends::ActivateGameOverlayToWebPage
此函数可在游戏内叠加界面上打开网页浏览器,并加载指定网址。 需输入完整网址,如 http://www.steamgames.com/。
ISteamFriends::ActivateGameOverlayToStore
此函数可打开游戏内叠加界面,购买当前游戏的 DLC。(参见可下载内容(DLC),了解更多信息。)
ISteamUtils::SetOverlayNotificationPosition
设定通知(“提示弹窗”)在屏幕的哪个角落出现。 默认为屏幕右下方。
ISteamUtils::IsOverlayEnabled
如果叠加界面正在运行且用户可以访问,则返回 true。 叠加界面进程可能需要几秒钟的时间来启动并与游戏进程挂钩,因此当界面在加载时,此函数最初将返回 false。

叠加界面向游戏的通信

根据用户在叠加界面的操作,Steam 将向您的游戏发送以下信号(回调):

GameOverlayActivated_t
在游戏叠加界面激活或停用时发送。 游戏可用此暂停或继续单人游戏。
GameServerChangeRequested_t
用户选择加入好友游戏时发送,内含待加入游戏服务器的详细信息。
GameLobbyJoinRequested_t
用户选择加入好友游戏时发送,内含待加入大厅的详细信息。

常见问题

注意: 您也可在面向顾客的客服网站中找到更多答案,比如下面这个主题:无法激活 Steam 社区叠加界面。

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

答: Steam 叠加界面已应用于数千款游戏中,因此已经过非常彻底的测试,很少引起崩溃。 不过由于它注入游戏的方式,确实经常会在使用您原本可能不会影响游戏运行的渲染 API 时,暴露内存泄露和损坏。

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

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

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

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

问: 我的游戏在 Win7 上使用 D3D12,而 Steam 叠加界面无法运行。 为什么?

答: 请参阅此 Microsoft 文档,了解如何添加 Steam 叠加界面支持。

Q. My game runs in a browser. Can the Overlay work in that?

A. The Steam Overlay requires a game consistently render frames, not pausing rendering or rendering only part of the screen based on dirty rects. Unfortunately, web browsers do not support this model. A workaround for web based games is to host an embedded Chromium inside a native application, with a D3D window and input forwarding to the embedded Chromium. That can be setup to render in offscreen mode, which then renders the resulting chromium texture each frame in the native app. Partners often use CEF to do this, though this is not an easy task.

相关知识

Steam 云畅玩(测试版) (Steamworks 文献库)
在 Steam 商店实况直播游戏试用版 (Steamworks 文献库)
用户评测 (Steamworks 文献库)
小额交易(游戏内购买) (Steamworks 文献库)
steam从库中移除游戏 怎样让Steam库里的游戏消失
steam界面怎么改中文 steam界面改中文版
卡库远古封印steam价格介绍
steam改成 steam怎样设置中文界面
steam确认界面打不开
steam如何共享游戏库给好友?steam共享游戏库最详细的教程一览

网址: Steam 叠加界面 (Steamworks 文献库) http://www.hyxgl.com/newsview341067.html

推荐资讯