UnityでUIの描画順を正しく制御する方法

ゲーム制作の知識・TIPS

UnityでUIを作っていると、要素の描画順が思った通りにならないことがありますよね。

ボタンが背景の後ろに隠れてしまったり、テキストが画像の下に表示されてしまったり。

この記事では、UI描画順が決まる仕組みを解説します。

初心者が混乱しやすい設定を整理し、UI設計の基礎理解として説明していきましょう。

この記事でわかること

  • UI描画順が決まる仕組み
  • Hierarchy順と描画順の関係
  • CanvasのSort Order
  • 混乱しやすい設定
  • 正しい制御方法
ゲーム開発講師
ゲーム開発講師

UIの描画順は、Hierarchy上の順序で決まります。

順序を意識することで、描画順を正しく制御できますよ。

ゲーム制作をゼロから学びたいあなたへ
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
ゲームを「遊ぶ側」から「作る側」へ

あなたのオリジナルゲーム、今年こそ完成させませんか?

RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。

Unity入門の森|永久会員チケット

永久会員チケット|Unity入門の森

全講座ラインナップを見てみる

実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。

UI描画順が決まる仕組み

UI描画順が決まる仕組み

UIの描画順は、どのように決まるのでしょうか。

仕組みを説明します。

基本的なルール

UIの描画順は、Hierarchy上の順序で決まります。

上から順番に描画されるため、下にある要素が上に表示されるという仕組みですね。

このルールを理解することが、描画順を制御する第一歩です。

Hierarchy上の順序が、そのまま描画順になるということを覚えておきましょう

Canvas内での順序

Canvas内での描画順は、Hierarchy上の順序で決まります。

同じCanvas内の要素は、Hierarchy上の順序通りに描画されます。

下にある要素が、上に表示されるというわけですね。

Canvas内での描画順は、Hierarchy上の順序で決まります

複数のCanvasがある場合

複数のCanvasがある場合、CanvasのSort Orderで表示順が決まります。

Sort Orderが大きいCanvasほど、前に表示されます。

Canvas内の要素は、各Canvas内でHierarchy上の順序で描画されます。

複数のCanvasがある場合、CanvasのSort Orderで表示順が決まります

Hierarchy順と描画順の関係

Hierarchy順と描画順の関係

Hierarchy上の順序と描画順の関係を、詳しく説明します。

順序の変更方法

Hierarchy上の順序を変更することで、描画順を制御できます。

以下の手順で行います:

  1. Hierarchyで、UI要素を選択
  2. ドラッグ&ドロップで、順序を変更
  3. 下に移動させると、上に表示される

Hierarchy上の順序を変更することで、描画順を簡単に制御できます

階層構造の影響

Hierarchyの階層構造も、描画順に影響します。

同じ親の子要素同士では、Hierarchy上の順序が描画順になります。

異なる親の子要素同士では、親オブジェクトの順序が優先されます。

階層構造を理解することで、描画順をより細かく制御できます

スクリプトでの制御

スクリプトで描画順を制御する場合、Transform.SetAsLastSiblingというメソッドを使えます。

このメソッドを使うと、オブジェクトをHierarchyの最後に移動できます。

つまり、一番上に表示されるようになります。

スクリプトで描画順を制御する場合、SetAsLastSiblingが便利です

CanvasのSort Order

CanvasのSort Order

複数のCanvasがある場合、Sort Orderで表示順を制御します。

どのように設定すればいいのでしょうか。

Sort Orderの意味

Sort Orderは、Canvasの表示順を決める数値です。

数値が大きいほど、前に表示されます。

例えば、Sort Orderが10のCanvasは、Sort Orderが5のCanvasよりも前に表示されます。

Sort Orderを設定することで、複数のCanvasの表示順を制御できます

Sort Orderの設定方法

Sort Orderの設定方法は、以下の通りです:

  1. Canvasを選択
  2. Inspectorで「Canvas」コンポーネントを確認
  3. 「Sort Order」の値を設定

UI用のCanvasには、大きい値を設定することをおすすめします。

Sort Orderを設定することで、複数のCanvasの表示順を制御できます

推奨される設定

複数のCanvasを使う場合、以下のような設定がおすすめです:

  • メインUI:Sort Order = 0
  • ポップアップUI:Sort Order = 10
  • ダイアログUI:Sort Order = 20

数値に余裕を持たせることで、後から追加するCanvasも適切な位置に配置できます。

数値に余裕を持たせることで、後から調整しやすくなります

混乱しやすい設定

混乱しやすい設定

UIの描画順で、混乱しやすい設定を説明します。

設定1:Hierarchy上の順序と視覚的な順序が逆

Hierarchy上の順序と視覚的な順序が逆になることが、混乱の原因になることがあります。

Hierarchy上で上にある要素が、画面では下に表示されます。

この逆転が、初心者には分かりにくい場合があります。

Hierarchy上の順序と視覚的な順序が逆になることを理解しておきましょう

設定2:親オブジェクトの順序

親オブジェクトの順序も、描画順に影響します。

親オブジェクトの順序が変わると、その子要素の描画順も変わってしまいます。

この関係性が、初心者には分かりにくい場合があります。

親オブジェクトの順序を意識することで、子要素の描画順も制御できます

設定3:動的に生成された要素

スクリプトで動的にUI要素を生成した場合、生成順が描画順に影響します。

後から生成された要素が、上に表示されるというわけですね。

動的に生成する場合は、生成順を意識する必要があります。

動的に生成する場合も、生成順を意識することで、描画順を制御できます

ゲームを「遊ぶ側」から「作る側」へ

あなたのオリジナルゲーム、今年こそ完成させませんか?

RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。

Unity入門の森|永久会員チケット

永久会員チケット|Unity入門の森

全講座ラインナップを見てみる

実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。

まとめ

UIの描画順を制御する方法まとめ

この記事では、UnityでUIの描画順を正しく制御する方法を解説しました。

重要なポイントをおさらいします。

重要なポイント:

  • UI描画順が決まる仕組みとして、Hierarchy上の順序で決まり、上から順番に描画され、下にある要素が上に表示される
  • Hierarchy順と描画順の関係として、順序を変更することで描画順を制御でき、階層構造も影響し、スクリプトで制御も可能
  • CanvasのSort Orderとして、複数のCanvasがある場合にSort Orderで表示順を制御し、数値が大きいほど前に表示される
  • 混乱しやすい設定として、Hierarchy上の順序と視覚的な順序が逆、親オブジェクトの順序、動的に生成された要素などの問題がある
  • 描画順の仕組みを理解することで、UIの描画順を正しく制御できるようになる

UIの描画順は、Hierarchy上の順序で決まります。

順序を意識することで、描画順を正しく制御できますよ。

Unity入門の森で、UI設計の基礎理解として、UI描画順を含めたUnityの基礎を体系的に学べます。

初心者が混乱しやすい設定も、丁寧に解説されていますよ。

ゲーム制作をゼロから学びたいあなたへ
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる

コメント

タイトルとURLをコピーしました