Example #1
0
        /// <summary>
        /// Calculate the positions of the child gameobjects in a helix.
        /// </summary>
        /// <param name="childs"></param>
        public static void Helix(List <GameObject> childs)
        {
            int sign           = 1;
            int sequenceNumber = 0;

            //childs = DocumentSorter.SortingByHeightDesc(childs);
            //childs = DocumentSorter.SortingByWidthDesc(childs);
            childs = DocumentSorter.SortingByHeightAndWidthDesc(childs);

            float displacementFactorWidth = FindOutDisplacementFactorWidth(childs);
            float displacementFactorDepth = FindOutDisplacementFactorDepth(childs);

            GameObject prevGameObject = childs[0];

            if (prevGameObject.GetComponent <BaseInformation>().GetQualifier() == SqQualifier.FILE ||
                prevGameObject.GetComponent <BaseInformation>().GetQualifier() == SqQualifier.UNIT_TEST)
            {
                prevGameObject.transform.position = new Vector3(0.0f, prevGameObject.transform.position.y, 0.0f);
            }
            else
            {
                prevGameObject.transform.position = new Vector3(0.0f, 0.0f, 0.0f);
            }

            int childIndex = 1;

            for (int listIndex = 0; childIndex < childs.Count; listIndex++)
            {
                if ((listIndex + 1) % 2 == 0)
                {
                    sign = -sign;
                }
                else
                {
                    sequenceNumber++;
                }

                for (int loopIndexSeqNumber = 0; loopIndexSeqNumber < sequenceNumber; loopIndexSeqNumber++)
                {
                    if (childIndex < childs.Count)
                    {
                        if (listIndex % 2 == 0)
                        {
                            childs[childIndex].transform.position = prevGameObject.transform.position + new Vector3(sign * displacementFactorWidth, 0.0f, 0.0f);
                        }
                        else
                        {
                            childs[childIndex].transform.position = prevGameObject.transform.position + new Vector3(0.0f, 0.0f, sign * displacementFactorDepth);
                        }
                        prevGameObject = childs[childIndex];
                        childIndex++;
                    }
                    else
                    {
                        return;
                    }
                }
            }
        }
Example #2
0
        /// <summary>
        /// Calculate the positions of the child gameobjects in a corner.
        /// </summary>
        /// <param name="childs"></param>
        public static void Corner(List <GameObject> childs)
        {
            childs = DocumentSorter.SortingByHeightDesc(childs);

            float displacementFactorWidth = FindOutDisplacementFactorWidth(childs);
            float displacementFactorDepth = FindOutDisplacementFactorDepth(childs);

            int indexList = 0;
            int i         = 0;

            while (indexList < childs.Count)
            {
                int x = i;

                for (int y = 0; y >= -i && indexList < childs.Count; y--, x--, indexList++)
                {
                    childs[indexList].transform.position = new Vector3(x * displacementFactorWidth, 0.0f, y * displacementFactorDepth);
                }
                i++;
            }
        }