如何改变统一克隆的排序?

时间:2017-04-18 05:19:11

标签: unity3d unityscript

enter image description here

这些克隆是由脚本创建的。 如果我想改变它们的种类(在层次结构中),我该怎么办?我试图打印pos但是它原来是预制件而不是克隆,这意味着所有这些克隆都有相同的名称和位置。

enter image description here

真的需要帮助。非常感谢。

1 个答案:

答案 0 :(得分:1)

要在其父层次结构中获取GameObject的索引并更改其位置,可以使用子项的transform组件的GetSiblingIndexSetSiblingIndex函数。第一个将为您提供与父级层次结构中特定子项的位置相对应的索引,而第二个将允许您将其放在特定索引处。

以下示例将打印所有子元素的索引,因此从0到numberChild - 1:

void Start()
{
    Transform parentTransform = Parent.transform;
    int numberChildren = parentTransform.childCount;

    for(int i = 0; i < numberChildren; i++)
    {
        int index = parentTransform.GetChild(i).GetSiblingIndex();

        Debug.Log(index);
    }
}

由您来决定如何使用SetSiblingIndex函数为您的游戏目的重新排序元素。

附注:您可以使用GameObject的name组件更改GameObject的名称。如果你想快速识别所有孩子,这可能非常方便:

Parent.transform.GetChild(i).name = "Item1";

此外,如果您正在考虑经常使用Parent对象的transform组件,请将引用存储在您的类中。