Version: Unity 6.0 (6000.0)
言語 : 日本語
ソートグループ内のレンダラーのソート
ソートグループのリファレンス

ソートグループの使用

2D スプライトキャラクターを作成する最も一般的な方法は、Hierarchy ウィンドウで複数のスプライトレンダラーを並べて親にし、キャラクターを形成することです。このような複雑な複数のスプライトキャラクターを管理するために、Sorting Group を使用できます。

以下の例では、スプライトレンダラーは同じ Sorting Layer に属していますが、Order in Layer の値が異なります。Unity により、キャラクターのさまざまなパーツが表示したい順にソートされます。

階層構造のパーツを持つキャラクタープレハブ。
階層構造のパーツを持つキャラクタープレハブ。

Sorting Group と Sorting Layer を設定した後、キャラクターを プレハブ として保存し、必要なだけクローンすることができます。

ただし、プレハブスプライトはすべて Sorting LayerOrder in Layer の値が同じで、他のプレハブと同じレイヤーにレンダリングされるため、プレハブキャラクターの異なるパーツが交差し、正しくレイヤーにされない場合があります。

Unity はスプライトを同じレイヤーにレンダリングするため、2 つのプレハブのスプライトが正しく交差しません。
Unity はスプライトを同じレイヤーにレンダリングするため、2 つのプレハブのスプライトが正しく交差しません。

プレハブが独自のレンダリング順序を維持して正しく表示されるようにするには、各プレハブのルートゲームオブジェクトに Sorting Group コンポーネントを追加します。編集したプレハブを保存します。すると、プレハブの現在および将来のすべてのインスタンスにも Sorting Group コンポーネントが含まれるようになります。

各プレハブの Sorting Group コンポーネントの Sorting LayerOrder in Layer プロパティ設定は同じになります。これは、同じ Sorting Layer にあるプレハブのレンダラーが、一貫性のない方法でレンダリングされる原因となります。なぜなら、それらは レンダーキュー で同じ優先順位を持つからです。

この問題を回避するには、各プレハブの Sorting Group コンポーネントに一意の Order in Layer の値を設定します。Unity は、最初に Order in Layer 値が低い Sorting Group をレンダリングし、値が高い Sorting Group は値の低い Sorting Group の上に重なります。Sorting Layer の編集と順序変更に関して詳しくは、Tags and Layers を参照してください。

各プレハブの Sorting Group コンポーネントに一意の Order in Layer 値が設定されると、Unity が各キャラクターとそのパーツを正しくレンダリングするよう制御します。

SortingGroup

ソートグループ内のレンダラーのソート
ソートグループのリファレンス