uGUIUnityのuGUIの描画順ルールは意外と複雑なので、描画順の制御方法をまとめます。関連Unity2018.4.0複数のCanvasを別々のカメラに映す場合はカメラの描画順に従うまず、二つのボタンを別々のCanvasに配置します。赤いボタンをCanvasAに、青いボタンをCanvasBに配置しています。Modeというプロパティがあり、どのCameraに映すかを指定できます。light11.hatenadiary.comこれによりCanvasAとCanvasBを別々のCameraに映した場合、Canvasに置かれたGUIの描画順はCameraの描画順に従います。Overlayにした場合には最前面に描画されます。言い方を変えると「最後に描画されるカメラにCanvasが映るように設定した」と考えることもできます。別々のカメラにCanvasを映す場合は上記のような挙動となりますが、そもそもGUIを複数のカメラに映すケースは多くない気もします。Layerで描画順が決まる次に、CanvasAとCanvasBを同じカメラに映すことを考えます。Layerにより描画順を制御できます。LayerはCanvasコンポーネントから設定できるプロパティです。上図ではLayerAはLayerBが存在していますが、最初はDefaultしか設定されていません。Layer設定ウィンドウを開けます。Layerはこのウィンドウで+ボタンを押すことで追加できます。レイヤー名の左側をドラッグすることで並び替えることもできます。並び変えた結果、下にあるレイヤーほど手前に描画されます。Layerで指定します。これは値が大きいほど手前に描画されます。Layerを編集してみます。値が大きいときにCanvasBよりも手前に描画されていることが確認できます。Sub-Canvasの描画順Canvas配下のGUI要素にCanvasコンポーネントを付けるとサブCanvasとなります。サブCanvasの描画順は基本的には親のCanvasと同じになります。Layerが設定できるようになります。この機能を使うと、親のCanvasの描画順にかかわらず、サブCanvasの描画順を決めることができます。最後に同じCanvas内のGUIの描画順について考えます。これについては直感的で、Hierarchy上で下にある要素ほど手前に描画されます。上記の例ではButton3が最前面に描画されることになります。»プロフィールUnityエンジニア。グラフィックスへの興味が強めです。Blur(渦巻ブラー)のポストエフェクトを実装する月別アーカイブはてなブログをはじめよう!halya_11さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。