ドゥアイネットのプログラマー、湯川が開発日記を綴ります。

CALENDAR
S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  
<< January 2019 >>
ARCHIVES
CATEGORIES
<< UnityでのiPhone6、iPhone6plus表示 | main | UnityとVuforia >>
Unityでステータスバーを表示するアプリのステータスバーをスプラッシュ画面の間だけ非表示にする
ちょっとややこしいですが、基本ステータスバーありのUnityアプリで
スプラッシュ中だけステータスバーなしにしたいという要望があり対応しました。

いろいろ試して以下でOKでした(iPhone版)。

1.Unity側はStatusBar Hiddenはチェックしない。
2.ビルドされたプロジェクトのinfo.plistの「Status bar is initially hidden」をYES
3.UnityAppController.mmを修正

@implementation UnityViewControllerBaseのところにステータスバー関連メソッドを追加

// ステータスバーの非表示
- (BOOL)prefersStatusBarHidden
{
  return self.view.tag == 999 ? NO:YES;//NOのとき非表示となる
}
//ステータスバー文字を白くする
- (UIStatusBarStyle)preferredStatusBarStyle {
  return UIStatusBarStyleLightContent;
}
4.アプリが起動したときにステータスバー更新を呼ぶ
UIViewController * controller = UnityGetGLViewController();
    controller.view.tag = 999;
    [controller setNeedsStatusBarAppearanceUpdate];
    
    この例では、起動したタイミングでtagに999をセットして、
    prefersStatusBarHiddenで999になっていたらステータスバーを表示するようにしています。
| unity & AR | 15:56 | comments(0) | - |
コメント
コメントする