Esempio n. 1
0
        void SceneClipEdit()
        {
            if (users.Length > 1)
            {
                return;
            }
            SplineUser user = (SplineUser)target;

            if (user.spline == null)
            {
                return;
            }
            Color col = user.spline.editorPathColor;

            Undo.RecordObject(user, "Edit Clip Range");
            double val = user.clipFrom;

            SplineEditorHandles.Slider(user.spline, ref val, col, "Clip From", SplineEditorHandles.SplineSliderGizmo.ForwardTriangle);
            if (val != user.clipFrom)
            {
                user.clipFrom = val;
            }
            val = user.clipTo;
            SplineEditorHandles.Slider(user.spline, ref val, col, "Clip To", SplineEditorHandles.SplineSliderGizmo.BackwardTriangle);
            if (val != user.clipTo)
            {
                user.clipTo = val;
            }
        }
        protected virtual void KeyHandles(SplineSampleModifier.Key key, bool edit)
        {
            if (!isOpen)
            {
                return;
            }
            bool   changed = false;
            double value   = 0f;

            value = key.start;
            SplineEditorHandles.Slider(user.spline, ref value, user.spline.editorPathColor, "Start", SplineEditorHandles.SplineSliderGizmo.ForwardTriangle, 0.8f);
            if (key.start != value)
            {
                key.start = value;
                changed   = true;
            }

            value = key.globalCenterStart;
            SplineEditorHandles.Slider(user.spline, ref value, user.spline.editorPathColor, "", SplineEditorHandles.SplineSliderGizmo.Rectangle, 0.6f);
            if (key.globalCenterStart != value)
            {
                key.globalCenterStart = value;
                changed = true;
            }

            value = key.globalCenterEnd;
            SplineEditorHandles.Slider(user.spline, ref value, user.spline.editorPathColor, "", SplineEditorHandles.SplineSliderGizmo.Rectangle, 0.6f);
            if (key.globalCenterEnd != value)
            {
                key.globalCenterEnd = value;
                changed             = true;
            }

            value = key.end;
            SplineEditorHandles.Slider(user.spline, ref value, user.spline.editorPathColor, "End", SplineEditorHandles.SplineSliderGizmo.BackwardTriangle, 0.8f);
            if (key.end != value)
            {
                key.end = value;
                changed = true;
            }


            if (Event.current.control)
            {
                value = key.position;
                double lastValue = value;
                SplineEditorHandles.Slider(user.spline, ref value, user.spline.editorPathColor, "", SplineEditorHandles.SplineSliderGizmo.Circle, 0.4f);
                if (value != lastValue)
                {
                    key.position = value;
                    changed      = true;
                }
            }

            if (changed)
            {
                user.Rebuild();
            }
        }
        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();
                }
            }
        }