调用 Steam 界面时如何在 Unity 中暂停游戏
How to pause game in Unity when the Steam Overlay is called
我正在为 Steam 平台在 Unity 中开发游戏。我想知道如何在调用 Steam 界面时暂停游戏。我尝试了几件事,但没有任何效果。
Steamworks API 在 ISteamUtils
界面中有一个名为 IsOverlayEnabled
的函数,您可以调用它来检查 Steam 界面当前是否处于活动状态。通过定期检查此功能,您可以在需要时调出暂停屏幕。
IsOverlayEnabled
bool IsOverlayEnabled();
Checks if the Steam Overlay is running & the user can access it.
The overlay process could take a few seconds to start & hook the game
process, so this function will initially return false while the
overlay is loading.
Returns: bool
https://partner.steamgames.com/doc/api/ISteamUtils#IsOverlayEnabled
Steam bool isOverlayEnabled() 函数的基本用法。请注意,首先需要将 Steamworks.Net 包下载并安装到您的 Unity 项目中。未经测试,但可能不需要继承 Monobehavior...
using Steamworks;
public class DemoClass : Monobehaviour {
if(SteamUtils.IsOverlayEnabled()) {
// pause...
}
}
1 确保您使用的是:
using SteamWorks
2创建回调
protected Callback<GameOverlayActivated_t> overlayIsOn;
3 启动时检查 Steam 管理器是否已初始化
if (!SteamManager.Initialized)
{
return;
}
4 制作一个接受回调的函数
void PauseGameIfSteamOverlayOn(GameOverlayActivated_t callback)
{
if (canPause)
{
// PAUSE GAME
}
}
5 创建回调变量并添加函数
overlayIsOn = Callback<GameOverlayActivated_t>.Create(PauseGameIfSteamOverlayOn);
我正在为 Steam 平台在 Unity 中开发游戏。我想知道如何在调用 Steam 界面时暂停游戏。我尝试了几件事,但没有任何效果。
Steamworks API 在 ISteamUtils
界面中有一个名为 IsOverlayEnabled
的函数,您可以调用它来检查 Steam 界面当前是否处于活动状态。通过定期检查此功能,您可以在需要时调出暂停屏幕。
IsOverlayEnabled
bool IsOverlayEnabled();
Checks if the Steam Overlay is running & the user can access it.
The overlay process could take a few seconds to start & hook the game process, so this function will initially return false while the overlay is loading.
Returns: bool
https://partner.steamgames.com/doc/api/ISteamUtils#IsOverlayEnabled
Steam bool isOverlayEnabled() 函数的基本用法。请注意,首先需要将 Steamworks.Net 包下载并安装到您的 Unity 项目中。未经测试,但可能不需要继承 Monobehavior...
using Steamworks;
public class DemoClass : Monobehaviour {
if(SteamUtils.IsOverlayEnabled()) {
// pause...
}
}
1 确保您使用的是:
using SteamWorks
2创建回调
protected Callback<GameOverlayActivated_t> overlayIsOn;
3 启动时检查 Steam 管理器是否已初始化
if (!SteamManager.Initialized)
{
return;
}
4 制作一个接受回调的函数
void PauseGameIfSteamOverlayOn(GameOverlayActivated_t callback)
{
if (canPause)
{
// PAUSE GAME
}
}
5 创建回调变量并添加函数
overlayIsOn = Callback<GameOverlayActivated_t>.Create(PauseGameIfSteamOverlayOn);