void Update()
    {
        if (!isAnimating)
        {
            // joystick input
            joystickRaw.x = Input.GetAxis(xAxisName);
            joystickRaw.y = Input.GetAxis(yAxisName);

            if (joystickRaw != Vector2.zero)
            {
                isSelected    = true;
                joystickAngle = GetJoyAngle(joystickRaw);
                selectionPlane.localEulerAngles = new Vector3(0, 0, joystickAngle);
            }
            else
            {
                isSelected = false;
            }

            // button input
            // Press 'X' to view the equation.
            // Press 'A' to build the equation and send it to the GUI viewer
            if (isSelected && Input.GetButtonDown(confirmBtn))
            {
                builtEq      = UpdateEquation(textVal.text, circlePlanes[2].name.ToString(), 1);
                textVal.text = builtEq;
            }            //Press 'B' to delete the equation one character at a time.
            if (Input.GetButtonDown(cancelBtn))
            {
                builtEq      = UpdateEquation(textVal.text, circlePlanes[2].name.ToString(), 0);
                textVal.text = builtEq;
            }             //Press 'start' to build graph data object and go to graphing scene
            if (Input.GetButtonDown(buildBtn))
            {
                if (GraphData.gd.EditVar == 0)
                {
                    GraphData.gd.Fn = builtEq;
                }
                else if (GraphData.gd.EditVar == 1)
                {
                    GraphData.gd.MinX = float.Parse(builtEq);
                }
                else if (GraphData.gd.EditVar == 2)
                {
                    GraphData.gd.MinY = float.Parse(builtEq);
                }
                else if (GraphData.gd.EditVar == 3)
                {
                    GraphData.gd.MinZ = float.Parse(builtEq);
                }
                else if (GraphData.gd.EditVar == 4)
                {
                    GraphData.gd.MaxX = float.Parse(builtEq);
                }
                else if (GraphData.gd.EditVar == 5)
                {
                    GraphData.gd.MaxY = float.Parse(builtEq);
                }
                else if (GraphData.gd.EditVar == 6)
                {
                    GraphData.gd.MaxZ = float.Parse(builtEq);
                }

                //Application.LoadLevel(1);
                manager.circleOff();
            }
            if (Input.GetButtonDown(leftBtn))
            {
                CycleCarousel(-1);
                isSelected = false;
            }
            if (Input.GetButtonDown(rightBtn))
            {
                CycleCarousel(1);
                isSelected = false;
            }

            selectionPlaneRenderer.enabled = isSelected;
        }
        else if (Time.time > animationStartTime + animationDuration)
        {
            isAnimating = false;
        }
    }