質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.76%

  • iOS

    3793questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • Unity

    3581questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

UnityのiOSビルドで画面端を2回スワイプしないと通知バーが出ないようにしたい。

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 633

soo

score 3

Unityで横画面のフルスクリーンのゲームを作っているのですが、画面端からスワイプすると通知バーが出てしまいゲームの操作が阻害されてしまいます。

幾つかのゲームでは、画面端を2回スワイプしないと通知センター(画面上端から下にスワイプ時)が出ないようになっています。
(2回スワイプした時に矢印がでます。)

これの実装方法が知りたいです。

参考にしたゲーム

  • Brain Dots(http://translimit.co.jp/services/braindots/)
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

Unity Issue Trackerによると、

In a full-screen app (iOS), the Notification Center should require two drags, one would show a triangle which you can then drag to show the center. In iOS11 case, the Notification Center shows from a single drag. 
The Same behavior is noticed with Control Center.

Steps: 
1. Open attached project ("NotificationCrntre.zip") 
2. Build and Run on iOS11 device 
3. Try to open Notification Center (swipe down from the top) or Control Center (swipe up from the bottom)

Expected: in order to open Notification Center/Control Center, 2 swipes are needed. 
Actual: only one swipe is enough.

Reproduced with: 2018.1.0a2, 2017.3.0b7, 2017.2.0p1, 2017.1.2p2.

Tested with: iPhone 6S iOS11.0, Xcode 9.0.
WON'T FIX: This is an intended behavior on iOS11.

フルスクリーンアプリ(iOS)において、通知センターは2回ドラッグで表示(1回目で三角を表示、それをドラッグで通知センター表示)されるべきです。iOS 11の場合、通知センターが1回のドラッグで表示されてしまいます。コントロールセンターも同じ挙動をします。

手順: 
1. 添付のプロジェクトを開く("NotificationCrntre.zip")
2. ビルドしiOS 11端末で実行する
3. 通知センター(上端から下へスワイプ)またはコントロールセンター(下端から上へスワイプ)を開こうとする

期待する動作: 通知/コントロールセンター表示に2回スワイプが必要。
実際の動作: 1回で表示される。

再現するバージョン: 2018.1.0a2、2017.3.0b7、2017.2.0p1、2017.1.2p2。
テストした環境: iPhone 6S iOS11.0、Xcode 9.0。

修正されません: これはiOS 11における意図された挙動です。

とのことで、この挙動を回避することはできなさそうに思えます。画面端からのスワイプが起こらないようなゲームデザインに変更してやるしかないかもしれません...
あいにくiOS 11の動くデバイスを持っておらず、私自身では確認できなかったのですが、「Brain Dots」の場合は2回スワイプ方式にできているということでしょうか?

[追記]
Issue Trackerにあんなことが書いてありましたが、取り急ぎUnityアプリをiPhoneX対応する - Qiitaによると「Project Settings」→「Player」の「Other Settings」に「Defer system gestures on edges」という項目があるようです。
リファレンス によれば、

Defer system gestures until the second swipe on specific edges.

On iPhone X the home button is implemented as a system gesture (swipe up from the lower edge of the screen). Other gestures are implemented as swipes from other screen edges. Note that this may interfere with games that use swipes as an interaction method. This setting specifies which screen edge gestures the system defers to the second swipe. The first swipe is ignored and provides a way to reduce unwanted interactions with the App. Note that iOS Human interface guidelines do not recommend enabling this behavior as it might confuse users.

指定されたエッジにおいて、2回目のスワイプまでシステムジェスチャーを遅延させます。

iPhone Xにおいてホームボタンはシステムジェスチャーとして実装されています(画面下端から上にスワイプ)。その他のジェスチャーは他のエッジからのスワイプとして実装されます。操作方法としてスワイプを用いるゲームはこれと干渉しうることにご注意ください。この設定は、システムジェスチャーを2回目のスワイプまで遅延させるエッジを指定します。1回目のスワイプは無視され、アプリにおける不要なインタラクションを抑止します。iOSヒューマンインターフェースガイドラインにおいては、ユーザを混乱させるおそれがあるため、この動作は推奨されていないことにご注意ください。

とのことで、まさしくこれが目的の設定項目であるように思います。実機はないためシミュレータを用いましたが、これをオンにすると、確かに1回目のスワイプで山形マークの付いたタブが現れ、2回目のスワイプで通知センターが現れるようになりました。ご質問者さんの環境ではいかがでしょうか?

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/25 23:27

    ありがとうございます。
    iOS11のiPhone 6S, iPhoneXで確認しましたが、Brain Dotsは2回スワイプ方式となっています。

    ちなみに、使用しているUnityのバージョンは2017.2.0f3です。
    Brain Dotsは一年前に更新されているアプリなので、古いUnityのバージョンを使っている(2回スワイプ方式になっている)ということですかね?

    キャンセル

  • 2017/12/26 03:24 編集

    Issue Trackerだと修正しないようなことが書いてありましたが、どうやら設定項目があるらしい(私のUnityは2017.3.0f3ですが、設定項目がありました)ことを示唆する記事もありましたので追記いたします。

    古いバージョンのUnityでビルドするとどうなるかは未検証ですが、確かに「従来は2回スワイプ方式になっていたが、Appleのガイドラインに合わせて標準は1回スワイプとし、必要に応じて2回スワイプに設定させるようにした」というのはありそうな話ですね。

    キャンセル

  • 2017/12/27 18:09

    ありがとうございます。
    「Project Settings」→「Player」の「Other Settings」に「Defer system gestures on edges」を設定することでiPhone 6S, iPhoneX共に2回スワイプにすることが出来ました!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • iOS

    3793questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • Unity

    3581questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。