Transform.GetSiblingIndex
Declaration
public int GetSiblingIndex();Возвращаемое значение
инт Индекс этого Transform, относительно его братьев.
Описание
Получает индекс этого Transform относительно его братьев.
Когда GameObject имеет несколько прямых дочерей, эти дочери рассматриваются как 'братья и сестры' относительно друг друга. Индекс братьев и сестер описывает порядок детей в группе братьев и сестер. Первый ребенок родительского GameObject имеет индекс 0, второй ребенок имеет индекс 1 и так далее. Неактивные GameObjects по-прежнему считаются в группе братьев и сестер.
Индекс братьев и сестер влияет на порядок, в котором дочери и сестры отображаются в окне Hierarchy, и также используется некоторыми компонентами, такими как компоненты Группы макетов, для управления визуальной сортировкой объектов. Дополнительную информацию о группах макетов см. в AutoLayout.
При вызове Transform.GetChildпараметр, переданный этому методу, является тем же, что и индекс братьев и сестер.
Для установки индекса братьев и сестер 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()); } } }