技術ブログ

【Unity】iOSのコントロールセンターが誤作動で開かれるのを防止する

前書き

iOSには画面下からスワイプすることでコントロールセンターが開きます。
(上からなら通知センター)
とても便利な機能ですがゲームプレイにおいてこの機能は邪魔になることが多々あります。

現に僕が開発している音楽ゲームでも

このように下の方をタップした際にコントロールセンターが開かれてゲームが一時停止してしまうことがありました。

今回はこちらの対策方法を解説していきます。

注意

この方法はAppleは推奨しておらず、UIなどの配置などで上記現象の対策をするように説明しています。
現状僕のアプリは審査など問題ありませんが今後リジェクト理由になるかもしれません。

実装

メニューバーから「Edit」→「Project Settings」を開き、Project Settings内の「Defer system gestures on edges」という項目をいじることで対応できます。

初期状態では項目が閉じているので、クリックして開きます。

すると4つのチェックボックスが出てくるので、スワイプ誤作動を対策したい角にチェックを入れます。
(例:縦画面アプリで通知センターだけ対策したい場合はTopのみ、横画面アプリで両方対策したい場合はLeftとRight)

これにて対策完了です、ビルドしてスワイプしてみると、

このように1回目は矢印が表示されてコントロールセンターが表示されません。
矢印が出ている間にもう一度スワイプすると表示されてしまいますが、矢印が出ただけではゲームは一時停止しませんし快適さが段違いです。

後書き

今回はコントロールセンターや通知センターが意図せず表示されてしまわないような方法を解説しました。
しかし前書きにも記した通りAppleには推奨されていないので、どうしてもと言う場合のみ上の対策法で対処しましょう。

理不尽なリジェクトを避ける為にも、できる限り画面端でのタップ操作を避ける方法で対応した方がいいと思います。
(最近は画面サイズも様々で画面端だと端末サイズ次第は見切れるような場合も多くあるしね)

↓役に立ったらシェアしてね↓