Skip to content

兩次激活返回系統 ​

在iOS設備上,用戶通過上滑手勢返回主屏時,有時可能影響遊戲的沉浸體驗。為了提升用戶體驗,我們需要在遊戲中添加Home上滑兩次激活返回系統功能。

核心代碼 ​

objective-c
- (UIRectEdge)preferredScreenEdgesDeferringSystemGestures {
    return UIRectEdgeAll;
}

Unity遊戲的實現位置 ​

1、在導出的 Xcode 工程裡,全局搜索以下關鍵字:preferredScreenEdgesDeferringSystemGestures 2、在 UnityViewControllerBase 或 UnityAppController.mm找如下代碼

objective-c
- (UIRectEdge)preferredScreenEdgesDeferringSystemGestures
{
    UIRectEdge res = UIRectEdgeNone;
    if (UnityGetDeferSystemGesturesTopEdge())
        res |= UIRectEdgeTop;
    if (UnityGetDeferSystemGesturesBottomEdge())
        res |= UIRectEdgeBottom;
    if (UnityGetDeferSystemGesturesLeftEdge())
        res |= UIRectEdgeLeft;
    if (UnityGetDeferSystemGesturesRightEdge())
        res |= UIRectEdgeRight;
    return res;
}

3、代碼修改如下所示

objective-c
- (UIRectEdge)preferredScreenEdgesDeferringSystemGestures {
    return UIRectEdgeAll;
}

註: 如在項目中全局搜索不到preferredScreenEdgesDeferringSystemGestures,則需要在遊戲的主控制器(即承載渲染視圖的 UIViewController,通常是 GameViewController、RootViewController 或 Unity 的 UnityViewControllerBase)中實現該方法。 這樣可以確保整個遊戲界面統一啟用系統邊緣手勢的 延遲觸發機制,有效降低因誤觸導致的交互中斷,提升沉浸式體驗。