Esempio n. 1
0
    public void CalculateBounds()
    {
        List <Transform> children    = new List <Transform>();
        List <Transform> newChildren = new List <Transform>();

        children.Add(transform);
        newChildren.Add(transform);

        while (newChildren.Count != 0)
        {
            List <Transform> nextChildren = new List <Transform>();
            foreach (Transform currentParent in newChildren)
            {
                for (int childIdx = 0; childIdx < currentParent.childCount; ++childIdx)
                {
                    Transform child = currentParent.GetChild(childIdx);
                    if (child is RectTransform == false)
                    {
                        nextChildren.Add(child);
                    }
                }
            }
            children.AddRange(nextChildren);
            newChildren.Clear();
            newChildren.AddRange(nextChildren);
        }

        levelBounds         = XUtils.GetBounds(children);
        levelBounds.center -= transform.position;
    }