suakx devlog

開発ブログのような

2 notes &

Unity (iOS)で画面の回転を封じる

radiumsoftware:

iOS上のUnityで普通にアプリを組むと、画面の向きが自由に回転してしまう。Unity側の描画は固定することができても、その裏側で黒い四角形がグルグル回ったり、システムUI(アラートダイアログやGame Centerのオーバーレイ表示)の向きが画面と一致しなくなってしまう。なんとも不恰好だ。

Unityのコミュニティを検索してみると、これを防ぐ最も簡単な方法として、以下のようなコードが紹介されている。

iPhoneKeyboard.autorotateToPortrait = false; iPhoneKeyboard.autorotateToPortraitUpsideDown = false; iPhoneKeyboard.autorotateToLandscapeRight = false; iPhoneKeyboard.autorotateToLandscapeLeft = false;

これにより、アプリ動作中に発生する画面の回転は防ぐことができる。しかし、アプリ起動直後の回転を防ぐことはできないようだ。本体を横倒しのままアプリを起動すると、システムUIが横向きのままになってしまう。

これを防ぐための強力な方法として、AppController.mmを書き換えるというものがある。次の一行をコメントアウトすればいい。

KeyboardOnScreen::Init();

ちょっと副作用がありそうな感じもするけれど……とにかく回転させたくないんじゃあ!ていう場合には、こんな対処もあるよ、ということで。

  1. opensources-reblogger reblogged this from devlog
  2. devlog reblogged this from radiumsoftware
  3. radiumsoftware posted this