スマホ画面の向きが変更されたタイミングで処理したい

スマホ画面が縦でも横でも利用できるアプリは親切だと思います。

どこかで聞いた話では、ユーザがどんな態勢でアプリを利用するかは分からないので

縦でも横でも、逆さまでも利用できるアプリが理想らしいです。
(逆さまで利用するシーンってどんな時?)

UnityではUGUIと呼ばれる「ユーザインタフェース」が便利なので
ボタンとかラベルとかは適切に作れば、ある程度、縦横変更に対応してくれます。

そこで「メイン」の方も縦横変更に対応するときのプログラムです。

public class CameraManager : MonoBehaviour {

int orientation = -1; // 1:portrait 2:landscape

void Awake() {
#if UNITY_ANDROID && !UNITY_EDITOR
if (Screen.orientation == ScreenOrientation.Portrait ||
Screen.orientation == ScreenOrientation.PortraitUpsideDown ) {

orientation = 1;
}
else if (Screen.orientation == ScreenOrientation.Landscape ||
Screen.orientation == ScreenOrientation.LandscapeLeft ||
Screen.orientation == ScreenOrientation.LandscapeRight) {

orientation = 2;
}
#endif
}

void Update() {
#if UNITY_ANDROID && !UNITY_EDITOR
// 画面の向きが横から縦に変わった?
if (orientation == 2 &&
(Screen.orientation == ScreenOrientation.Portrait ||
Screen.orientation == ScreenOrientation.PortraitUpsideDown) ) {

orientation = 1;

// 縦横変更に対応した処理(CameraのrectやfieldOfViewの変更とか)
//

}
// 画面の向きが縦から横に変わった?
else if (orientation == 1 &&
(Screen.orientation == ScreenOrientation.Landscape ||
Screen.orientation == ScreenOrientation.LandscapeLeft ||
Screen.orientation == ScreenOrientation.LandscapeRight) ) {

orientation = 2;

// 縦横変更に対応した処理(CameraのrectやfieldOfViewの変更とか)
//
}
#endif
}
}

(例)アプリ「投扇興」の場合
縦横変更

関連記事
[タグ] UGUI カメラ

コメント

非公開コメント

No title

こちらのコード、参考にさせてもらいます。

充電しながらゲームをする人は、逆さま表示に対応してて欲しいみたいですよ。
上向きだとケーブルが邪魔になりますからね〜。

Re: No title

なるほどー充電しながらゲームするときは確かに逆さまですね。
納得です。

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。