0.はじめに
この記事はUnityのuGUIを3Dオブジェクトの奥と手前に表示する方法についての自分向けの備忘録代わりの記事となります。
また、記事の作成や文章を書くのが久しぶりのため、読み辛いことこの上ないかと思いますが、受け入れてください。
(コメントとかで、色々と指摘してもらえると嬉しいです。)
今回はLineRendererが背景よりも後ろで描画される問題に遭遇しました。
その問題解決のための前テストとして、表題の内容について色々と試しつつ調べました。
使用しているUnityのバージョンは[Unity 2021.3.25]です。
1.2Dオブジェクトのみ(UIのみ)の場合
1.SortingLayersから、レイヤー層を作成する
(上に置いてあるほど奥に表示され、下に置いてあるほど手前に表示される)
2.キャンバスから、[Sorting Layer]に割り当てをする
これで、同じSortLayer毎にまとめて前後表示の設定をすることができる。
MeshTextの設定でもできるが、コードからになるため今回は割愛。
2.3Dオブジェクトの手前と奥にUIを置く場合
1.[Render Mode]を[Screen Space - Camera]に変更をする
2.[Plane Distance]の値を調整し、3Dオブジェクトを挟む
これで、3Dオブジェクトの手前と奥にUIを置くことができる。
テスト的に作った画面だとこんな感じになる。
3.[2]の注意点
Hierarchyタブからカメラを選択した時、Sceneタブでカメラの範囲が表示される。
これよりもUIで作成したCanvasが奥過ぎたり手前過ぎると、UIは表示されなくなる
UIの奥と手前はこの範囲に限定される。->配置できる3Dオブジェクトもこの間に置かないといけない。
4.おわりに
今回得た知見を基に、次はLineRendererでの問題解決をやってみようと思います。
Canvasの原理的にも、問題はないはずだけれども、ダメだったら辛いなあ......。
5.参考URL
- 特になし