uGUI で特定のオブジェクトの前後にレイヤーを移す
バリアントプレハブとか使ってるとなぜかレイヤーの順番がうまく変わらないことがあるので、無理やり変えてみた。
同じ階層限定。
public class SetLayerOrder : MonoBehaviour { enum Order { Front, Back, } [SerializeField] private Order order; [SerializeField] private Transform targetObject; private void Start() { int myIndex = this.transform.GetSiblingIndex(); int targetIndex = this.targetObject.GetSiblingIndex(); if (myIndex < targetIndex && this.order == Order.Back) --targetIndex; else if (myIndex > targetIndex && this.order == Order.Front) ++targetIndex; this.transform.SetSiblingIndex(targetIndex); } }
コメントを残す