環境
-
RealWear
- Androidが搭載されたヘッドマウントディスプレイ
- Unity2018
問題
- RealWearは左右の目どちらでも使用できるように端末の上下に合わせて画面を自動回転してくれる機能が備わっている。
- 自動回転自体は端末の設定でON/OFF可能
- しかし、Unityで作成したアプリを起動しているとき、自動回転をONにしていてもある条件で自動回転が効かなくなる。
- 自動回転が効かなくなる条件はロール軸に上下を逆さまにしたとき
- 逆さまにしたタイミングで一度だけ自動回転が発生するが、その後は上下を逆さまにしても自動回転が効かなくなる。
- 自動回転が効かなくなっているのはアプリレベルの話であるため、他のアプリでは自動回転は動作するし、該当アプリを再起動すれば再び自動回転は効くようになる。
解決策
UnityエディタからBuild settings > Player Setiings
を開き、 settings for Android > Resolution and Presentation
の中の
-
Orientation
をAuto Rotation
に -
Allowed Orientations for Auto Rotation
のPortrait
とPortrait Upside Down
のチェックを外し、Landscape Right
とLandscape Right/Left
だけにチェックをつける
おそらくRealWearでは横向きが画面しか対応しておらず、ロール軸回転によって一瞬でも縦向きという状態になると、それを正しく処理できず自動回転機能に不具合を起こすのではないかと予想している。
そのため、アプリの設定で縦向きを除外してやることでこの問題の発生を抑えられているのだろう。
あとがき
- 今回は仕事の関係でRealWearという一般ではあまり利用されていないハードウェアの開発に携わることになり上記の問題に直面した。
- RealWearの情報は公式ドキュメントと日本の販売代理店のもの以外はほぼ存在せず、特にこういった細かい不具合については一切参考になるものがなかったため、今後RealWear × Unityで開発を行う人の助けになればと思い記事を書いた。
- この記事のニーズは日本の中では1人もいないかもしれないが、いつか誰かの役に立つことを願っている。