/// <summary>
        /// 获取指定物体的各层级顺序数据(即各层级的sibling Index)
        /// </summary>
        /// <param name="tran">指定物体</param>
        public static GameObjectHierarchyOrderData GetHierarchyOrderData(Transform tran)
        {
            GameObjectHierarchyOrderData orderData = new GameObjectHierarchyOrderData(tran.gameObject);
            Transform parent = tran;

            while (parent)
            {
                orderData.orderData.Insert(0, parent.GetSiblingIndex());
                parent = parent.parent;
            }

            return(orderData);
        }
        //比较两个物体的层级顺序(true:  a的层级顺序>b的层级顺序, false: a < b)
        public static bool CompareGameObjectHierarchyOrder(GameObjectHierarchyOrderData a, GameObjectHierarchyOrderData b)
        {
            int count_a      = a.orderData.Count;
            int count_b      = b.orderData.Count;
            int compareCount = Mathf.Min(count_a, count_b);  //先比较相同的层级

            for (int i = 0; i < compareCount; i++)
            {
                if (a.orderData[i] != b.orderData[i])
                {
                    return(a.orderData[i] < b.orderData[i]);  //同一层级内,sibling越小,处于的位置就越靠上
                }
            }

            return(count_a < count_b);  //如果前面没有返回,说明这两个物体为父子关系(这里父子可以指多层的父子关系),那么只要比较层级数量,层级数量越小的越靠上
        }