概要
今回はプレイヤーのプレハブを作成します。プレイヤープレハブの子コンポーネントには髪腕、体といった部位のオブジェクトがあります。これらの子オブジェクトのレイヤーを設定して描画順を制御します。
以下実装後の様子です。
開発環境
IDE:Rider
Unity:2020.3.42(LTS)
OS:Windows10
UnityEditor上の設定
ソートレイヤーを作成
下図のようにソートレイヤーを追加します。尚今回はInsntacesレイヤーを使います。
Playerオブジェクトを作成
サンプルプロジェクトのオブジェクトを参考にしてPlayerオブジェクトを作ります。
SortingGroupコンポーネントの挙動を検証する
別のSpriteRendererアタッチ済みゲームオブジェクトを重ねて、SortingGroupの動きを確認します。尚レイヤーは同じとします。
木のインスペクター
結果
ケース | 木のレイヤー順序 | プレイヤーのSortingGroup | プレイヤーのレイヤー順序 | 結果 |
---|---|---|---|---|
A | 0 | ON | 0 | 木が描画される |
B | 0 | OFF | - | プレイヤーの全部位が描画される |
C | 0 | ON | 1 | プレイヤーの全部位が描画される |
D | 2 | OFF | - | プレイヤーの一部(腕のみ)が描画される胴体部分髪は表示されない。原因は木のレイヤーの順序以下のため |
以上の結果からSortingGroupを使うとレイヤーの管理が楽になります。
参考
C#
Unity Editor コンポーネント
Sorting Layer
Sorting Group
Sprite Renderer
Unity スクリプト
その他
Section1
github コミット分(個人確認用 privateなので見れません)