//This script demonstrates how to return (GetSiblingIndex) and change (SetSiblingIndex) the sibling index of a GameObject. //Attach this script to the GameObject you would like to change the sibling index of. //To see this in action, make this GameObject the child of another GameObject, and create siblings for it.



using UnityEngine;



public class TransformGetSiblingIndex : MonoBehaviour { //Use this to change the hierarchy of the GameObject siblings int m_IndexNumber;



void Start() { //Initialise the Sibling Index to 0 m_IndexNumber = 0; //Set the Sibling Index transform.SetSiblingIndex(m_IndexNumber); //Output the Sibling Index to the console Debug.Log("Sibling Index : " + transform.GetSiblingIndex()); }



void OnGUI() { //Press this Button to increase the sibling index number of the GameObject if (GUI.Button(new Rect(0, 0, 200, 40), "Add Index Number")) { //Make sure the index number doesn't exceed the Sibling Index by more than 1 if (m_IndexNumber <= transform.GetSiblingIndex()) { //Increase the Index Number m_IndexNumber++; } }



//Press this Button to decrease the sibling index number of the GameObject if (GUI.Button(new Rect(0, 40, 200, 40), "Minus Index Number")) { //Make sure the index number doesn't go below 0 if (m_IndexNumber >= 1) { //Decrease the index number m_IndexNumber--; } } //Detect if any of the Buttons are being pressed if (GUI.changed) { //Update the Sibling Index of the GameObject transform.SetSiblingIndex(m_IndexNumber); Debug.Log("Sibling Index : " + transform.GetSiblingIndex()); } } }