private Vector3 GetChildPosition(PillarGroup child, float radius)
 {
     return(new Vector3(
                radius * Mathf.Cos(child.angleFromCentre * Mathf.Deg2Rad),
                0f,
                radius * Mathf.Sin(child.angleFromCentre * Mathf.Deg2Rad)
                ));
 }
    private void Start()
    {
        Debug.Log("Setting Up Puzzle!");
        Debug.Log(transform.childCount);
        for (int childIndex = 0; childIndex < transform.childCount; childIndex++)
        {
            //Get the RotatingPillar component from the child, skip it if it doesn't have one.
            PillarGroup group = transform.GetChild(childIndex).GetComponent <PillarGroup>();
            if (group == null)
            {
                continue;
            }

            group.InitialiseAndPositionGroup(outerPillarsDistanceFromCentre);
            groupsCorrectPositions.Add(group, group.transform.localPosition);

            group.transform.localPosition = GetChildPosition(group, groupsDistanceFromCentre);
        }
    }