MRが楽しい

MRやVRについて学習したことを書き残す

UnityでスクリプトからHierarchy内のオブジェクトの順序を並べ替える

本日はUnityの小ネタ枠です。
UnityでスクリプトからHierarchy内のオブジェクトの順序を並べ替える方法を記事にします。

SiblingIndex

Hierarchy内のオブジェクトの順序はTransformのSiblingIndex関連の関数で参照・変更できます。
SiblingIndexで参照できるインデックスは同一階層のオブジェクトのインデックスである点に注意してください。

GetSiblingIndex

現在のオブジェクトのインデックスを取得します。

    public void GetSiblingIndexTest()
    {
        var siblingIndex = this.transform.GetSiblingIndex();
        Debug.Log($"SiblingIndex: {siblingIndex}");
    }


docs.unity3d.com

SetSiblingIndex

現在のオブジェクトのインデックスを変更します。
インデックスの上限を超える値を設定した場合は一番下(最大値)のインデックスに移動します。

    public void SetSiblingIndexTest()
    {
        var siblingIndex = 10;
        this.transform.SetSiblingIndex(siblingIndex);
    }


docs.unity3d.com

SetAsFirstSibling

現在のオブジェクトの一番上(最小値)のインデックスに移動します。

    public void SetAsFirstSiblingTest()
    {
        this.transform.SetAsFirstSibling();
    }


docs.unity3d.com

SetAsLastSibling

現在のオブジェクトの一番下(最大値)のインデックスに移動します。

    public void SetAsLastSiblingTest()
    {
        this.transform.SetAsLastSibling();
    }


docs.unity3d.com