index | 要设置的索引。 |
设置兄弟节点索引。
使用此方法更改 GameObject 的兄弟节点索引。如果一个 GameObject 与其他 GameObject 共享父节点并且位于同一级别(即它们共享同一个直接父节点),这些 GameObject 被称为兄弟节点。兄弟节点索引显示每个 GameObject 在此兄弟节点层次结构中的位置。
使用 SetSiblingIndex 更改 GameObject 在此层次结构中的位置。当 GameObject 的兄弟节点索引更改时,它在层级视图中的顺序也会更改。如果您有意对 GameObject 的子节点进行排序,例如使用布局组组件时,这很有用。
布局组也会根据其索引在视觉上重新排序组。要详细了解布局组,请参见 自动布局。要返回 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()); } } }