Cat Shrine

Unityを使ってAndroid,iOS向けにゲームを作っています。

任意のゲームオブジェクトを前面に表示する方法

後ろに表示したいものが前面に表示される

prefabなどでランダムにゲームオブジェクトを配置していると、後ろにあるべきものが前に表示されて画面がゴチャゴチャになってしまうことがよくあります。

 

(例)

f:id:AGB5002:20200227092838j:plain

 

この場合、ゲームオブジェクト同士のY座標を比較して、

上にある物を奥に、下にあるものを手前に表示させるとすっきりします。

 

 ソース

 

 

ここでやっていることは、

・ゲームオブジェクトのリストの作成

・リストをソート

ヒエラルキーの並べ方を変更

 

これを座標が変更になるタイミングに差し込めば、自動的に順番がソートされていい感じになります。

 

これはRectTransformの時の方法ですが、SpriteRendererで表示しているときはヒエラルキーではなくソーティングレイヤーを変更してあげればよいと思います。

Sorts[i].GetComponent<Renderer>().sortingOrder = i;