読者です 読者をやめる 読者になる 読者になる

(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

Hierarchy内の順序をプログラムで変える【Unity】


このエントリーをはてなブックマークに追加

この記事でのバージョン
Unity 5.4.0f3


はじめに

今回はHierarchyでの順序を変える方法のご紹介です。

利用するのは主にuGUIを使っている時ですね。


GetSiblingIndex

Hierarchyでの順序、つまり上から何番目にいるかはTransformのSiblingIndexで確認できます。

int siblingIndex = transform.GetSiblingIndex (); 


注意が必要なのが、SiblingIndexは全体での順序ではなく、兄弟内での順序です。

例えば以下のような感じです。(オブジェクトの横の数字がSiblingIndex)


f:id:kan_kikuchi:20160927134202j:plain


SetSiblingIndex

SiblingIndexの設定にはSetSiblingIndexを使います。

transform.SetSiblingIndex(1); 


一番上が0です。

また、兄弟の数以上の値を指定しても、一番下になるだけでエラーにはなりません。


SetAsFirstSiblingとSetAsLastSibling

一番上(uGUIなら背面)にしたい時にはSetAsFirstSiblingを使います。

同様に一番下(uGUIなら前面)にしたい時にはSetAsLastSiblingを使います。

transform.SetAsFirstSibling(); //一番上(uGUIなら背面)
transform.SetAsLastSibling();  //一番下(uGUIなら前面)