Transform.SetSiblingIndex
Declaration
public void SetSiblingIndex(int index);Параметры
| Параметр | Описание |
|---|---|
| индекс | Индекс для установки. |
Описание
Установка индекса родственников.
Используйте это для изменения индекса сестер GameObject. Если a GameObject разделяет родителя с другими GameObjects и на одном уровне (i.e. они имеют одного и того же прямого родителя), эти GameObjects Индекс братьев и сестер показывает, где каждый из них GameObject сидит в этой братской иерархии.
При установке индекса братьев в преобразовании, другие братья могут изменить свой индекс братьев, чтобы освободить пространство или закрыть пробел. Например, данные братья "a", "b" и "c", с индексами 0, 1 и 2, вызывают SetSiblingIndex(0) на преобразование "c" также приведет к тому, что преобразование "a" будет иметь индекс сестры 1, а преобразование "b" — индекс сестры 2.
Использование SetSiblingIndex для изменения GameObject’ место в этой иерархии. Когда индекс братьев GameObject изменяется, его порядок Hierarchy окно также изменится. Это полезно, если вы намеренно отдаете приказы дочерним программам GameObject например, при использовании компонентов Группы макетов.
Группы макетов также визуально изменят порядок группы по их индексу. Подробнее о группах макетов см. AutoLayout. Для возврата индекса сестры GameObject, см. Transform.GetSiblingIndex.
//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()); } } }