protected override void OnSceneGUI()
        {
            base.OnSceneGUI();
            SplineTracer tracer = (SplineTracer)target;

            if (triggerFoldout)
            {
                for (int i = 0; i < tracer.triggers.Length; i++)
                {
                    SplineEditorHandles.SplineSliderGizmo gizmo = SplineEditorHandles.SplineSliderGizmo.DualArrow;
                    switch (tracer.triggers[i].type)
                    {
                    case Trigger.Type.Backward: gizmo = SplineEditorHandles.SplineSliderGizmo.BackwardTriangle; break;

                    case Trigger.Type.Forward: gizmo = SplineEditorHandles.SplineSliderGizmo.ForwardTriangle; break;

                    case Trigger.Type.Double: gizmo = SplineEditorHandles.SplineSliderGizmo.DualArrow; break;
                    }
                    double last = tracer.triggers[i].position;
                    if (SplineEditorHandles.Slider(tracer, ref tracer.triggers[i].position, tracer.triggers[i].color, tracer.triggers[i].name, gizmo) || last != tracer.triggers[i].position)
                    {
                        trigger = i;
                        Repaint();
                    }
                }
            }
            if (customOffsetEditor.isOpen)
            {
                if (customOffsetEditor.DrawScene(tracer))
                {
                    tracer.Rebuild(false);
                }
            }

            if (customRotationEditor.isOpen)
            {
                if (customRotationEditor.DrawScene(tracer))
                {
                    tracer.Rebuild(false);
                }
            }
        }
        void DrawGroupScene(int index)
        {
            TriggerGroup group = spline.triggerGroups[index];

            for (int i = 0; i < group.triggers.Length; i++)
            {
                SplineEditorHandles.SplineSliderGizmo gizmo = SplineEditorHandles.SplineSliderGizmo.DualArrow;
                switch (group.triggers[i].type)
                {
                case SplineTrigger.Type.Backward: gizmo = SplineEditorHandles.SplineSliderGizmo.BackwardTriangle; break;

                case SplineTrigger.Type.Forward: gizmo = SplineEditorHandles.SplineSliderGizmo.ForwardTriangle; break;

                case SplineTrigger.Type.Double: gizmo = SplineEditorHandles.SplineSliderGizmo.DualArrow; break;
                }
                double last = group.triggers[i].position;
                if (SplineEditorHandles.Slider(spline, ref group.triggers[i].position, group.triggers[i].color, group.triggers[i].name, gizmo) || last != group.triggers[i].position)
                {
                    Select(index, i);
                    Repaint();
                }
            }
        }