【3D】2Dオブジェクトのレイヤー概念【Unity6】

unity技術

オブジェクトの重なり順の操作です。

    簡易版

    強さの違い

    • Layer
    • Sorting Layer
    • Order in Layer
    • Postion Z

    上記の上から順が適用強度順になっています。

    Sorting Layer」リスト内では、下にいくほど手前に表示される。
    Order in Layer」数値では、大きいほど手間に表示される。
    Postion Z」(2Dテンプレート時のみ)数値では、「Order in Layer」が同じ場合に限り、小さいほど手間に表示される。

    Hierarchy」ではオブジェクトが下にある方が手前に表示される。

    Layer」は初心者はいじらないほうが良さそうです。
    基本的には「Sorting Layer」と「Order in Layer」で指定していきましょう。

    Layer

    初心者はいじらないほうが良さそうな「Layer」です。

    0」が「Defailt」、「5」が「UI」になっているのが分かります。
    下にいくほど画面手前に表示されるので、ここをいじってしまうと「ゲーム内オブジェクト」や「UI」の表示がおかしくなってしまうことになりかねません。
    任意のレイヤーも追加できるので、理解が深まった後に触っていくのが良いと思います。

    基本的には「Additional Settings」内の「Sorting Layer」と「Order in Layer」を変更します。

    Sorting Layer

    正面の壁」と「本棚」を例にしてみます。

    本棚の中もそれぞれ分かれています。

    Sorting Layer」を変更していきます。

    壁のオブジェクトを選択しましょう。

    Additional Settings」内の「Sorting Layer」タブをクリックすると「Default」と「Add Sorting Layers」が表示されます。

    Add Sorting Layers」で任意のレイヤーを作成すると、パーツ毎に指定できるようになります。

    壁のオブジェクト用に「Room」という名前の「Sorting Layer」を作成します。

    さらに「+」でレイヤーを増やします。
    本棚に割り当てるレイヤーは「BookShelf」とします。

    壁オブジェクトの「Sorting Layer」タブで、作成した「Room」レイヤーを選択します。

    Default」より「Room」のほうが手前に来るため、
    「Default」設定の本棚よりも壁が手前に表示されるようになりました。

    次は、本棚オブジェクトを「BookShelf」レイヤーにします。

    Room」より「BookShelf」のほうが手前に来るため、
    「Room」設定の壁よりも本棚が手前に表示されるようになりました。

    作成した「Sorting Layer」は、リストをドラッグして任意の順番にすることもできます。

    Room」レイヤーを「BookShelf」レイヤーの下(手前)に移動させたため、壁が手前に表示されるようになります。

    Order in Layer

    上記の「Sorting Layer」を変更せずとも、この「Order in Layer」の数値を変えるだけでもレイヤーの表示順を調整できます。
    その場合、オブジェクトが多いと数値が混在してしまって後々の調整も面倒になると思いますので「Sorting Layer」でも整頓しておいたほうが良いと思います。

    現段階では「本棚」オブジェクトと中身の「」オブジェクトの「Order in Layer」が同じ「0」になっている状態です。
    この状態にしておくと表示がおかしくなる可能性があるので、きっちりと数値を指定しましょう。

    右の作業用「Scene」画面では正常ですが、左のゲーム画面「Game」画面ではおかしなことになっています。
    他にも表示されてたりされてなかったりしています。

    中身の小物オブジェクトのレイヤーをすべて「1」にしました。
    左「Game」での表示もすべて正常になります。

    「Order in Layer」は数値が大きいほど手前に表示されるようになります。

    ※「Hierarchy」での順番も影響があり、同レイヤー数値の場合、オブジェクトが下にある方が手前に表示されるようです。
    これは2Dテンプレートでは確認できましたが、3Dテンプレートでは確認できませんでした。

    Postion Z

    Transform」の「Z」数値でもオブジェクトの重なり順を調整できます。
    しかしこれは2Dテンプレートのみの挙動のようです。

    3Dテンプレートでは、Z軸は奥行の概念になるので、オブジェクトの距離が変わることになります。

    整頓

    例では「Sorting Layer」を「部屋用」「家具用」「キャラクター用」と3つのレイヤーを作成してみました。
    Sorting Layer」をそれぞれのオブジェクトに割り当てた後、「Order in Layer」で調整します。

    Sorting Layer」「Order in Layer」ともに、
    「Hierarchy」内のオブジェクトを複数選択して一括でも変更可能です。

    コメント