private void Update()
        {
            float t = 0f;

            for (int i = 0; i < parts.Length; i++)
            {
                if (currentClicked && parts[i] == currentClicked.transform)
                {
                    t = expansionPath.Evaluate(currentClicked.FloatStore);
                    currentClicked.FloatStore += Time.deltaTime;
                    parts[i].position          = transform.TransformPoint(partStartPositions[i] + partDirections[i] * t);
                }

                if (previousClicked && parts[i] == previousClicked.transform)
                {
                    if (PrettyCloseToZero(t))
                    {
                        previousClicked = null;
                        if (queuedClick)
                        {
                            previousClicked           = currentClicked;
                            currentClicked            = queuedClick;
                            currentClicked.FloatStore = 0f;
                            queuedClick = null;
                        }
                        parts[i].position = transform.TransformPoint(partStartPositions[i]);
                    }
                    else
                    {
                        t = expansionPath.Evaluate(previousClicked.FloatStore);
                        parts[i].position = transform.TransformPoint(partStartPositions[i] + partDirections[i] * t);
                    }
                }
            }
        }
 private void Clicked(ClickableModel m)
 {
     if (previousClicked)
     {
         queuedClick = m;
     }
     else
     {
         previousClicked           = currentClicked;
         currentClicked            = m;
         currentClicked.FloatStore = 0f;
     }
 }