Unity

【Unity×iOS】iOSの画面の縦横切り替え・Xcode(Info.plist)の確認

この記事について

UnityでiOSアプリを作る際、画面の縦横切り替えはProject Settings・スクリプト・Xcode(Info.plist)での設定確認が欠かせません。
この記事では、基本設定の方法、動的な切り替えの実装例、よくあるエラーと対策、審査での注意点までを分かりやすく解説します。

この記事でわかること

  • Build Profilesでの設定手順
  • Xcode 側でのInfo.plistのチェックポイント
  • スクリプトで動的に向きを切り替えるサンプルコード
  • ビルド後に向きが変わってしまう “あるある” エラーの原因と対策
  • App Store 審査でNGにならないための注意点

iOSの縦画面・横画面の切り替えとは?

Unityアプリでは、タイトル画面は縦固定、プレイ画面は横固定といったように、シーンごとに画面の向きを変えるケースがよくあります。これを正しく設定するためには、UnityとXcodeの両方で調整が必要です。

画面の縦横切り替え・Xcode(Info.plist)での確認

Project Settingsで画面の切り替え設定

UnityではProject SettingsのOrientationの「Default Orientation」で変更可能です。

場所としては「Edit」→「Project Settings」→「Player」→「Resolution and Presentation」→「Orientaion」→「Defalut Orientation」にあります。

ここでデフォルトの画面向きを設定します。

スクリプトで動的に向きを制御する方法

例えばホーム画面は縦向き、プレイ画面は横向きに固定したい場合、動的に変更する必要があります。そんなときは「ScreenOrientation」が便利です。

using UnityEngine;

public class OrientationLocker : MonoBehaviour
{
    // 起動時に縦画面に固定する処理を呼び出す
    void Awake()
    {
        LockPortrait();
    }

    // 縦画面に固定するメソッド
    public void LockPortrait()
    {
        // 縦画面を基本の向きとして指定
        Screen.orientation = ScreenOrientation.Portrait;

        // 横画面は許可しない
        Screen.autorotateToLandscapeLeft  = false;
        Screen.autorotateToLandscapeRight = false;

        // 通常の縦向きだけを許可
        Screen.autorotateToPortrait       = true;

        // 逆さまの縦向きは許可しない
        Screen.autorotateToPortraitUpsideDown = false;
    }

    // 横画面に固定するメソッド
    public void LockLandscape()
    {
        // 横画面を基本の向きとして指定
        // LandscapeLeftを指定しているが、autorotateを両方ONにすることで
        // 端末の持ち方に応じて左横・右横の両方に対応できる
        Screen.orientation = ScreenOrientation.LandscapeLeft;

        // 横画面(左・右)を許可
        Screen.autorotateToLandscapeLeft  = true;
        Screen.autorotateToLandscapeRight = true;

        // 縦画面は許可しない
        Screen.autorotateToPortrait       = false;
        Screen.autorotateToPortraitUpsideDown = false;
    }
}

Info.plistで縦横の設定を確認

今回は「Landskape Left」でビルドします。ビルドが終わるとMacbookで「Info.plist」をチェックします。
以下のキーが Unity の設定と一致しているか確認しましょう。

  • Supprted interface orientations

もし一致していないと、アプリが意図しない向きで起動してしまう原因になります。

iOS実機で起動してみると、画面が横向きになり、縦画面時の上側が左に来るようになりました。

ビルド後によくあるエラーと対策

  • 原因: UnityとXcodeの設定が食い違っている
  • 対策: Info.plistの内容をUnityの設定に合わせて修正

これを怠ると「画面が勝手に横向きで起動する」「特定の端末で回転が効かない」といった不具合につながります。

App Store審査での注意点

Appleのガイドラインでは、不要な画面回転や強制固定がユーザー体験を損なう場合、リジェクト対象になることがあります。
ポイントは一貫性です。アプリの利用シーンごとに自然な画面向きを選び、無理に回転を制御しすぎないことが重要です。

まとめ

  • Unityの Project Settings で基本の向きを指定
  • 必要に応じて スクリプトで動的に制御
  • ビルド後は XcodeのInfo.plistを確認
  • エラーはUnityとXcodeの設定不一致が原因になりやすい
  • 審査を通すには「ユーザーが自然に使える画面向き」にすることが大切