Объявление
public void SetSiblingIndex(int index);Параметры
index | Индекс для установки. |
Описание
Устанавливает индекс родственного элемента.
Используйте это, чтобы изменить одноуровневый индекс GameObject. Если GameObject имеет общий родитель с другими GameObjects и находится на одном уровне (т. е. они имеют одного и того же прямого родителя), эти GameObject называются одноуровневыми. Индекс родственного элемента показывает, где находится каждый GameObject в этой иерархии родственных элементов.
Используйте SetSiblingIndex, чтобы изменить место GameObject в этой иерархии. При изменении родственного индекса GameObject его порядок в окне Hierarchy также изменится. Это полезно, если вы намеренно упорядочиваете дочерние элементы GameObject, например, при использовании компонентов группы макетов.
Группы макетов также визуально переупорядочивают группы по индексу. Дополнительные сведения о группах макетов см. в разделе AutoLayout. Чтобы вернуть одноуровневый индекс GameObject, см. раздел Transform.GetSiblingIndex.
//Этот скрипт демонстрирует, как вернуть (GetSiblingIndex) и изменить (SetSiblingIndex) одноуровневый индекс GameObject.
//Прикрепите этот скрипт к GameObject, для которого вы хотите изменить индекс родственного элемента.
//Чтобы увидеть это в действии, сделайте этот GameObject дочерним элементом другого GameObject и создайте для него братьев и сестер.
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());
}
}
}