protected override void BodyGUI()
        {
            EditorGUILayout.Space();
            EditorGUILayout.LabelField("Length Calculator", EditorStyles.boldLabel);
            base.BodyGUI();
            LengthCalculator calculator = (LengthCalculator)target;

            EditorGUILayout.HelpBox("Length: " + calculator.length, MessageType.Info);

            for (int i = 0; i < calculator.lengthEvents.Length; i++)
            {
                EditorGUILayout.BeginHorizontal();
                calculator.lengthEvents[i].enabled      = EditorGUILayout.Toggle(calculator.lengthEvents[i].enabled);
                calculator.lengthEvents[i].targetLength = EditorGUILayout.FloatField("Target Length", calculator.lengthEvents[i].targetLength);
                calculator.lengthEvents[i].type         = (LengthCalculator.LengthEvent.Type)EditorGUILayout.EnumPopup(calculator.lengthEvents[i].type);
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.BeginHorizontal();
                SplineEditorGUI.ActionField(calculator.lengthEvents[i].action);
                if (GUILayout.Button("x", GUILayout.Width(20)))
                {
                    LengthCalculator.LengthEvent[] newEvents = new LengthCalculator.LengthEvent[calculator.lengthEvents.Length - 1];
                    for (int n = 0; n < calculator.lengthEvents.Length; n++)
                    {
                        if (i == n)
                        {
                            continue;
                        }
                        else if (n < i)
                        {
                            newEvents[n] = calculator.lengthEvents[n];
                        }
                        else if (n > i)
                        {
                            newEvents[n - 1] = calculator.lengthEvents[n];
                        }
                    }
                    calculator.lengthEvents = newEvents;
                }
                EditorGUILayout.EndHorizontal();
            }
            if (GUILayout.Button("Add Length Event"))
            {
                LengthCalculator.LengthEvent[] newEvents = new LengthCalculator.LengthEvent[calculator.lengthEvents.Length + 1];
                calculator.lengthEvents.CopyTo(newEvents, 0);
                newEvents[newEvents.Length - 1]        = new LengthCalculator.LengthEvent();
                newEvents[newEvents.Length - 1].action = new SplineAction();
                calculator.lengthEvents = newEvents;
            }
        }