获取同级索引。
使用此方法返回游戏对象的同级索引。如果一个游戏对象与其他游戏对象共享父级,并且处于同一级别(即它们共享同一个直接父级),则这些游戏对象被称为同级。同级索引显示每个游戏对象在该同级层次结构中的位置。
使用 GetSiblingIndex 找出游戏对象在该层次结构中的位置。当游戏对象的同级索引发生更改时,它在层次结构窗口中的顺序也会发生更改。这在您有意对游戏对象的子对象进行排序时很有用,例如在使用布局组组件时。
布局组也会根据它们的索引在视觉上重新排列该组。要详细了解布局组,请参阅 自动布局。要设置游戏对象的同级索引,请参阅 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()); } } }