UnityにおけるUIの描画順とLayerの違い
目次
TL;DR
- Layer番号(0,1,2…) はオブジェクト分類用(衝突判定・カメラ制御)で描画順とは無関係
- UIが前面に表示されるのはCanvasやSorting Layerの仕組み
- 1つのCanvas内ではHierarchyの上下が描画順
- 複数Canvasがある場合はSort OrderやOrder in Layerで制御
1. Unityの「Layer」とは?
Unityの「Layer」はオブジェクトを分類するための仕組みです。
用途は主に以下の2つ:
- カメラのCulling Mask で映す/映さないを制御
- 物理判定(Physics) で衝突する/しないを制御
例:
- 0 = Default
- 2 = UI
- 3 = Player
- 4 = Background
注意:Layer番号は描画順とは無関係です。
2. UIの描画順が決まる仕組み
UIの描画は Canvas コンポーネントを通して行われます。
CanvasのRender Mode
- Screen Space – Overlay→ ゲーム画面に常に最前面で描画
- Screen Space – Camera→ 指定したカメラを基準に描画、基本的には最前面
- World Space→ 3D空間に配置されるので、奥行きによって前後関係が決まる
3. Canvas内での前後関係
1つのCanvas内 では、Hierarchyの上下がそのまま描画順になります。
Canvas
├── Image (下) → 奥に描画
├── Text (中) → 中間
└── Button (上) → 手前
上にあるオブジェクトほど「手前」に表示されます。
4. 複数Canvasの前後関係
Canvasが複数ある場合は Sort Order / Order in Layer が使われます。
Canvas A (Sort Order = 0)
└── 背景UI
Canvas B (Sort Order = 5)
└── ポップアップUI
値が大きいCanvas Bが必ず前面に描画されます。
5. Sorting LayerとOrder in Layer
Canvasには Sorting Layer と Order in Layer を設定できます。
- Sorting Layer:大きな分類(Default, UI, Popupなど)
- Order in Layer:数値が大きいほど手前
Canvas A (Sorting Layer = Default, Order = 0)
└── 通常UI
Canvas B (Sorting Layer = UI, Order = 10)
└── ポップアップUI(手前に描画)

6. 誤解を招く図の例
一部の教材や書籍では「UIがLayer番号2にある」と図示され、背景やプレイヤーと同列に描かれています。
これは 分類表としては正しい ですが、前後関係の説明図としては誤解を招きます。
正しくは:
- Layer番号 は分類用
- Canvas / Sorting Layer が描画順を決める
7. 図解で整理
Layer(分類)
0 = Default
2 = UI
3 = Player
4 = Background
※ 描画順とは関係なし
描画順(Sorting Layer / Canvas)
Background → Player → UI
奥 中間 手前
まとめ
- Layer番号は分類ラベルであって描画順とは無関係
- UIが前面に表示されるのはCanvasやSorting Layerの仕組み
- 同じCanvas内ではHierarchyの上下が描画順
- 複数Canvasがある場合はSort Order / Order in Layerで制御
- 教材で「UIがLayer2にある」と書かれていても、それは「分類」であり「描画順」を示すものではない
参考:Canvas Renderer Mode

Screen Space – Overlay の場合
- そのCanvasは常に最前面に描画されるため、他の World Space や Screen Space – Camera のCanvasよりも手前に必ず表示されます。
- このとき 「Sorting Layer」や「Order in Layer」の設定は無視されます。→ なぜなら、OverlayはUnity内部で「最前面に強制合成」する仕組みだからです。
Screen Space – Camera の場合
- 指定したカメラに対して「どの順番でUIを重ねるか」をSorting Layer / Order in Layer で制御できます。
- 例えばポップアップUIを一番手前に出したいなら、Order in Layer を大きな値にすればOKです。
World Space の場合
- これは「3D空間にオブジェクトとして存在するUI」なので、
- Z座標
- カメラのNear/Far Clip
- Sorting Layer / Order in Layerの影響を受けます。
まとめ
- Screen Space – Overlay → 最前面に強制描画、Order in Layer は効かない
- Screen Space – Camera → Sorting Layer / Order in Layer が効く
- World Space → 3D空間のZ+Sorting Layer / Order in Layer
訪問数 3 回, 今日の訪問数 3回
ディスカッション
コメント一覧
まだ、コメントがありません