获取同级索引。
用于返回 GameObject 的同级索引。如果 GameObject 与其他 GameObject 共享一个父级并且处于同一级别(即它们共享相同的直接父级),则这些 GameObject 被称为同级对象。同级索引显示每个 GameObject 在该同级层级视图中的位置。
使用 GetSiblingIndex 查找 GameObject 在该层级视图中的位置。当 GameObject 的同级索引发生更改时,其在“Hierarchy”窗口中的顺序也会改变。如果您需要更改 GameObject 子项的排序(例如使用布局组组件时),这很有用。
布局组还将按索引以可视化方式对组进行重新排序。要了解有关布局组的更多信息,请参阅 AutoLayout。
要设置 GameObject 的同级索引,请参阅 Transform.SetSiblingIndex。
//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());
}
}
}