本日はUnityの小ネタ枠です。
UnityでスクリプトからHierarchy内のオブジェクトの順序を並べ替える方法を記事にします。
SiblingIndex
Hierarchy内のオブジェクトの順序はTransformのSiblingIndex関連の関数で参照・変更できます。
SiblingIndexで参照できるインデックスは同一階層のオブジェクトのインデックスである点に注意してください。
GetSiblingIndex
現在のオブジェクトのインデックスを取得します。
public void GetSiblingIndexTest() { var siblingIndex = this.transform.GetSiblingIndex(); Debug.Log($"SiblingIndex: {siblingIndex}"); }
SetSiblingIndex
現在のオブジェクトのインデックスを変更します。
インデックスの上限を超える値を設定した場合は一番下(最大値)のインデックスに移動します。
public void SetSiblingIndexTest() { var siblingIndex = 10; this.transform.SetSiblingIndex(siblingIndex); }
SetAsFirstSibling
現在のオブジェクトの一番上(最小値)のインデックスに移動します。
public void SetAsFirstSiblingTest() { this.transform.SetAsFirstSibling(); }
SetAsLastSibling
現在のオブジェクトの一番下(最大値)のインデックスに移動します。
public void SetAsLastSiblingTest() { this.transform.SetAsLastSibling(); }