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; SplineComputerEditorHandles.Slider(user.spline, ref val, col, "Clip From", SplineComputerEditorHandles.SplineSliderGizmo.ForwardTriangle); if (val != user.clipFrom) { user.clipFrom = val; } val = user.clipTo; SplineComputerEditorHandles.Slider(user.spline, ref val, col, "Clip To", SplineComputerEditorHandles.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; SplineComputerEditorHandles.Slider(user.spline, ref value, user.spline.editorPathColor, "Start", SplineComputerEditorHandles.SplineSliderGizmo.ForwardTriangle, 0.8f); if (key.start != value) { key.start = value; changed = true; } value = key.globalCenterStart; SplineComputerEditorHandles.Slider(user.spline, ref value, user.spline.editorPathColor, "", SplineComputerEditorHandles.SplineSliderGizmo.Rectangle, 0.6f); if (key.globalCenterStart != value) { key.globalCenterStart = value; changed = true; } value = key.globalCenterEnd; SplineComputerEditorHandles.Slider(user.spline, ref value, user.spline.editorPathColor, "", SplineComputerEditorHandles.SplineSliderGizmo.Rectangle, 0.6f); if (key.globalCenterEnd != value) { key.globalCenterEnd = value; changed = true; } value = key.end; SplineComputerEditorHandles.Slider(user.spline, ref value, user.spline.editorPathColor, "End", SplineComputerEditorHandles.SplineSliderGizmo.BackwardTriangle, 0.8f); if (key.end != value) { key.end = value; changed = true; } if (Event.current.control) { value = key.position; double lastValue = value; SplineComputerEditorHandles.Slider(user.spline, ref value, user.spline.editorPathColor, "", SplineComputerEditorHandles.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++) { SplineComputerEditorHandles.SplineSliderGizmo gizmo = SplineComputerEditorHandles.SplineSliderGizmo.DualArrow; switch (group.triggers[i].type) { case SplineTrigger.Type.Backward: gizmo = SplineComputerEditorHandles.SplineSliderGizmo.BackwardTriangle; break; case SplineTrigger.Type.Forward: gizmo = SplineComputerEditorHandles.SplineSliderGizmo.ForwardTriangle; break; case SplineTrigger.Type.Double: gizmo = SplineComputerEditorHandles.SplineSliderGizmo.DualArrow; break; } double last = group.triggers[i].position; if (SplineComputerEditorHandles.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(); } } }