unity在编辑状态下按照物体在Hierarchy的顺序输出

在unity中使用Selection.gameObjects选择的物体实际是无序的,他们的索引跟物体在Hierarchy的顺序不对应。

例如:下面一段代码是你想实现的功能。

 [MenuItem("Select/sel")]
    static void SelectObject()
    {
        foreach (var item in Selection.gameObjects)
        {
            Debug.Log(item.name);
        }
    }
结果如图:

unity在编辑状态下按照物体在Hierarchy的顺序输出_第1张图片

可以很明显的看出来输出的顺序是无序的。如果想输出有序,请继续往下看。

[MenuItem("Select/sel")]
    static void SelectObject()
    {
        var SelecteObjects=Selection.gameObjects.OrderBy(_ => _.transform.GetSiblingIndex());
        foreach (var item in SelecteObjects)
        {
            Debug.Log(item.name);
        }
    }
结果如图:

unity在编辑状态下按照物体在Hierarchy的顺序输出_第2张图片

你可能感兴趣的:(Unity)