使用環境
・Unity Editor:2021.3.18f1
この記事でわかること
- Unity EditorでのPlayer Settings設定手順
- Xcode 側での Info.plist のチェックポイント
- スクリプトで動的に向きを切り替える サンプルコード
- ビルド後に向きが変わってしまう “あるある” エラーの原因と対策
- App Store 審査でNGにならないための注意点
iOSの縦画面・横画面を固定するとは?
ピッグダディ
今日は「Unityで作ったiOSアプリの画面の向きを固定する方法」について解説しますね。
向きがブレると、UIが崩れたりメニューが逆さまになったりします。
ピッグボーイ
あります!
iPhoneをちょっと傾けただけで画面が回転して、
ボタンが押せなくなったことがあって地味に困りますよね。
ピッグガール
私はゲーム中は横向き、メニューだけ縦向きにしたくて…
でも、設定してもなんか勝手に戻っちゃうことがあって…
ピッグダディ
うんうん、それぞれ大事なケースですね。
このあと、Player Settingsでの基本設定、Info.plistの確認ポイント、動的に向きを切り替える方法、さらにApp Storeの審査で気をつけるべき点まで、わかりやすく解説していきますね。
Unity Editorでの設定
File › Build Settings → “Player Settings…” をクリック。
Playerを選択 → 右側のiOSを選択 →“Resolution and Presentationが対象です。

項目 | 推奨値(縦固定) | 推奨値(横固定) |
---|---|---|
Default Orientation | Portrait | Landscape Left (または Right) |
Allowed Orientations for Auto-Rotation(Unity6以降?) | Portrait のみ ON | Landscape Left / Right のみ ON |
Xcode (Info.plist)での確認
ビルドが終わったらInfo.plist をチェックします。
以下のキーが Unity の設定と一致しているか確認しましょう。

スクリプトで動的に向きを制御する方法
一部のシーンだけ横向きにしたい。そんなときは ScreenOrientation API が便利です。
using UnityEngine;
public class OrientationLocker : MonoBehaviour
{
// 例:Awake 時に縦固定
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()
{
Screen.orientation = ScreenOrientation.LandscapeLeft;
Screen.autorotateToLandscapeLeft = true;
Screen.autorotateToLandscapeRight = true;
Screen.autorotateToPortrait = false;
Screen.autorotateToPortraitUpsideDown = false;
}
}
よくある落とし穴とデバッグTips
症状 | 原因 | 対策 |
---|---|---|
iPad で勝手に横になる | UISupportedInterfaceOrientations~ipad が縦横両方 | 不要な向きを削除 |
起動画面 (Launch Screen.storyboard) だけ横になる | Launch Screen の View が横固定 | Storyboard の View 属性を “Inferred” に |
特定シーンだけ UI が伸びる | Canvas Scaler が “Match Width Or Height” のまま | 縦横別 Canvas を用意 or スクリプトで切替 |
App Store Connect で “システム回転不可” 警告 | Info.plist と実装が矛盾 | 設定・コード両方を統一 |
まとめ
- 最優先は Player Settings:ここで正しく設定すれば 8 割は解決。
- Info.plist を必ず確認:Unity からの自動生成を鵜呑みにしない。
- 動的制御は Screen.orientation:ただし Info.plist に同じ向きを許可する。
- 審査リジェクト防止のため “宣言外のオリエンテーション” をゼロに。
これで 縦固定/横固定 のトラブルに悩まされることなく、安心して iOS 向け Unity アプリをリリースできます。
ぜひプロジェクトに取り入れてみてください!