我想在按下 Xbox 主页按钮时暂停 Unity 游戏。有没有办法检测到它?它没有直接的 Unity 键映射。 对于 PS4,我这样做了:
if (UnityEngine.PS4.Utility.isSystemUiOverlaid)
{
SetGamePaused (true);
}
PC / Xbox 有类似的 API 吗?
如评论中所述,上次讨论(大约2年前),但没有实施。你最好的选择是在 Unity 论坛上发帖,希望或祈祷 Unity 开发人员能给你一个更新的答案,或者至少在正确的方向上推动一下。
MS 最近确实向第三方发布了 Windows/Xbox Game bar SDK,但您很可能需要以某种方式手动实施或移植它。话又说回来,没有证据表明它可以轻松移植到 Unity,所以也许 Unity 开发人员或在 Unity 论坛上做过这件事的人可以帮助您。
最后,如果您希望在引擎中支持 OOTB,则必须等待 Unity Technologies 实现它,但请记住您必须提出请求。 Unity Feedback 平台在前一段时间停用并被 Unity 论坛取代,或者至少,Unity Technologies 表示它是暂时的(引用 UT:“这将是社区反馈的主要来源,直到我们能够获得一个新的、更具可扩展性的专用反馈解决方案”)。
不过,如果您想尝试一下,这是我正在谈论的页面:https://developer.microsoft.com/en-us/games/products/game-bar/。该实现似乎是面向 C# 的,但却是为 UWP 开发的。不确定您是否可以为 UWP 构建 Unity 并“强制”MS SDK 集成。
这里有一些资源:
希望这有助于或至少让您朝着正确的方向前进,直到出现更好的解决方案。祝你好运!