2D制作で、レイヤーの順序(Order in Layer)をスクリプトから変更できるようにしましょう。
上下キー操作で、グリーンのオブジェクトのレイヤー順序を入れ替えます。
関連記事:
スプライトレンダラーを取得してスプライト名を表示
スプライトレンダラーを取得してスプライトを切り替え
Order in Layerの数値を操作する
SpriteShapeを3つ作成します。
名前をこのように変更しました。
それぞれの配置を少しずつずらします。
レイヤーの順序を、Greenは0、Redは1、Blueは2にしました。
ゲームビューではこのように見えています。
空のオブジェクトを作成します。
LayerScript.csを作成し、GameObject(空のオブジェクト)に追加します。
LayerScript.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class LayerScript : MonoBehaviour { [SerializeField] GameObject greenObj; Renderer objSprite; void Start() { objSprite = greenObj.GetComponent<Renderer>(); objSprite.sortingOrder = 0; } void Update() { if(Input.GetKeyDown(KeyCode.UpArrow)) { objSprite.sortingOrder++; } if(Input.GetKeyDown(KeyCode.DownArrow)) { objSprite.sortingOrder--; } } } |
Greenのオブジェクトを、GreenObjのフィールドに入れます。
ゲームプレイして、上下キーを操作してみましょう。
レイヤー順序の数値が、加算または減算されて、見えかたが変わります。