private void DrawModesGUI() { EditorGUI.BeginChangeCheck(); GUILayout.Space(4); TSSEditorUtils.DrawGenericProperty(ref syncJoints, syncJointsContent); bool loopMode = path.loop; TSSEditorUtils.DrawGenericProperty(ref loopMode, loopModeContent, path.item); if (loopMode != path.loop) { path.loop = loopMode; selection.Clear(); } bool autoMode = path.auto; TSSEditorUtils.DrawGenericProperty(ref autoMode, autoModeContent, path.item); if (autoMode != path.auto) { path.auto = autoMode; selection.Clear(); } if (path.auto) { float pathSmooth = path.smoothFactor; TSSEditorUtils.DrawSliderProperty(ref pathSmooth, path.item, smoothFactorContent, 0, 1); if (pathSmooth != path.smoothFactor) { path.smoothFactor = pathSmooth; } } }
private static bool DrawTween(TSSTween tween, List <TSSTween> holder, Object parent, TSSItemValues values) { GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f); EditorGUILayout.BeginHorizontal(EditorStyles.helpBox); GUI.backgroundColor = Color.white; EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(); TSSEditorUtils.DrawGenericProperty(ref tween.enabled, parent); EditorGUI.BeginDisabledGroup(!tween.enabled); ItemEffect tweenEffect = tween.effect; TSSEditorUtils.DrawGenericProperty(ref tween.effect, parent); if (tween.effect != tweenEffect) { if (tween.effect == ItemEffect.property) { tween.matProperty = new TSSMaterialProperty(MaterialPropertyType.single); } if (tween.effect != ItemEffect.property) { tween.matProperty = null; tween.matPropertyType = MaterialPropertyType.single; } } EditorGUI.BeginDisabledGroup(tween.direction == TweenDirection.Button); if (tween.mode == TweenMode.Multiple) { EditorGUI.BeginDisabledGroup(tween.direction == TweenDirection.Close); TSSEditorUtils.DrawGenericProperty(ref tween.type, TSSEditorUtils.greenColor, null, parent); EditorGUI.EndDisabledGroup(); EditorGUI.BeginDisabledGroup(tween.direction == TweenDirection.Open); TSSEditorUtils.DrawGenericProperty(ref tween.closingType, TSSEditorUtils.redColor, null, parent); EditorGUI.EndDisabledGroup(); } else { TSSEditorUtils.DrawGenericProperty(ref tween.type, parent); } TSSEditorUtils.DrawGenericProperty(ref tween.mode, parent); EditorGUI.EndDisabledGroup(); TweenDirection tweenDirection = tween.direction; TSSEditorUtils.DrawGenericProperty(ref tween.direction, parent); if (tween.direction != tweenDirection) { if (tween.direction == TweenDirection.Button) { tween.type = TweenType.Custom; tween.mode = TweenMode.Single; } } EditorGUI.EndDisabledGroup(); if (DrawTweenDeleteButton(tween, holder, parent)) { return(false); } EditorGUILayout.EndHorizontal(); EditorGUI.BeginDisabledGroup(!tween.enabled); GUILayout.Space(3); TSSEditorUtils.DrawMinMaxSliderProperty(ref tween.startPoint, ref tween.endPoint, parent); if (tween.mode == TweenMode.Multiple && tween.direction == TweenDirection.OpenClose) { TSSEditorUtils.DrawSliderProperty(ref tween.blendFactor, parent, blndTweenLabelContent); } if ((tween.type == TweenType.Custom && tween.direction != TweenDirection.Close) || (tween.mode == TweenMode.Multiple && tween.closingType == TweenType.Custom && tween.direction != TweenDirection.Open)) { EditorGUILayout.BeginHorizontal(); TSSEditorUtils.DrawGenericProperty(ref tween.customEase, parent); EditorGUILayout.EndHorizontal(); } if (tween.effect == ItemEffect.property) { EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(); MaterialPropertyType tssMatPropType = tween.matPropertyType; string tssMatPropName = tween.matProperty.name; TSSEditorUtils.DrawGenericProperty(ref tween.matPropertyType, parent); if (tssMatPropType != tween.matPropertyType) { tween.matProperty = new TSSMaterialProperty(tween.matPropertyType); } tween.matProperty.name = tssMatPropName; TSSEditorUtils.DrawGenericProperty(ref tween.matProperty.name, parent); EditorGUILayout.EndHorizontal(); switch (tween.matPropertyType) { case MaterialPropertyType.single: EditorGUILayout.BeginHorizontal(); TSSEditorUtils.DrawGenericProperty(ref tween.matProperty.singleValues[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref tween.matProperty.singleValues[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndHorizontal(); break; case MaterialPropertyType.integer: EditorGUILayout.BeginHorizontal(); TSSEditorUtils.DrawGenericProperty(ref tween.matProperty.integerValues[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref tween.matProperty.integerValues[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndHorizontal(); break; case MaterialPropertyType.color: TSSEditorUtils.useHDRcolors = false; EditorGUILayout.BeginHorizontal(); TSSEditorUtils.DrawGenericProperty(ref tween.matProperty.colorValues[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref tween.matProperty.colorValues[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndHorizontal(); break; case MaterialPropertyType.colorHDR: TSSEditorUtils.useHDRcolors = true; EditorGUILayout.BeginHorizontal(); TSSEditorUtils.DrawGenericProperty(ref tween.matProperty.colorValues[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref tween.matProperty.colorValues[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndHorizontal(); break; case MaterialPropertyType.vector2: TSSEditorUtils.DrawGenericProperty(ref tween.matProperty.vector2values[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref tween.matProperty.vector2values[1], TSSEditorUtils.greenColor, parent); break; case MaterialPropertyType.vector3: TSSEditorUtils.DrawGenericProperty(ref tween.matProperty.vector3values[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref tween.matProperty.vector3values[1], TSSEditorUtils.greenColor, parent); break; case MaterialPropertyType.vector4: TSSEditorUtils.DrawGenericProperty(ref tween.matProperty.vector4values[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref tween.matProperty.vector4values[1], TSSEditorUtils.greenColor, parent); break; case MaterialPropertyType.curve: TSSEditorUtils.DrawGenericProperty(ref tween.matProperty.curve, parent); break; case MaterialPropertyType.gradient: TSSEditorUtils.DrawGenericProperty(ref tween.matProperty.gradient, parent); break; } EditorGUILayout.EndVertical(); } if (TSSPrefsEditor.showTweenProperties) { EditorGUILayout.BeginVertical(); switch (tween.effect) { case ItemEffect.transform: EditorGUILayout.LabelField("Position"); EditorGUILayout.BeginVertical(); TSSEditorUtils.DrawGenericProperty(ref values.positions[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.positions[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndVertical(); GUILayout.Space(4); EditorGUILayout.LabelField("Rotation"); EditorGUILayout.BeginVertical(); TSSEditorUtils.DrawGenericProperty(ref values.eulerRotations[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.eulerRotations[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndVertical(); GUILayout.Space(4); EditorGUILayout.LabelField("Scale"); EditorGUILayout.BeginVertical(); TSSEditorUtils.DrawGenericProperty(ref values.scales[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.scales[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndVertical(); break; case ItemEffect.position: TSSEditorUtils.DrawGenericProperty(ref values.positions[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.positions[1], TSSEditorUtils.greenColor, parent); break; case ItemEffect.rotation: TSSEditorUtils.DrawGenericProperty(ref values.eulerRotations[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.eulerRotations[1], TSSEditorUtils.greenColor, parent); break; case ItemEffect.scale: TSSEditorUtils.DrawGenericProperty(ref values.scales[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.scales[1], TSSEditorUtils.greenColor, parent); break; case ItemEffect.directAlpha: EditorGUILayout.BeginHorizontal(); TSSEditorUtils.DrawGenericProperty(ref values.alphas[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.alphas[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndHorizontal(); break; case ItemEffect.alpha: EditorGUILayout.BeginHorizontal(); TSSEditorUtils.DrawGenericProperty(ref values.alphas[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.alphas[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndHorizontal(); break; case ItemEffect.color: EditorGUILayout.BeginHorizontal(); TSSEditorUtils.useHDRcolors = false; TSSEditorUtils.DrawGenericProperty(ref values.colors[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.colors[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndHorizontal(); break; case ItemEffect.imageFill: EditorGUILayout.BeginHorizontal(); TSSEditorUtils.DrawGenericProperty(ref values.imageFills[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.imageFills[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndHorizontal(); break; case ItemEffect.text: TSSEditorUtils.DrawGenericProperty(ref values.texts[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.texts[1], TSSEditorUtils.greenColor, parent); break; case ItemEffect.number: EditorGUILayout.BeginHorizontal(); TSSEditorUtils.DrawGenericProperty(ref values.numbers[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.numbers[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndHorizontal(); break; case ItemEffect.light: EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Color", TSSEditorUtils.max80pxWidth); TSSEditorUtils.DrawGenericProperty(ref values.colors[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.colors[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndHorizontal(); GUILayout.Space(4); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Intensity", TSSEditorUtils.max80pxWidth); TSSEditorUtils.DrawGenericProperty(ref values.intensities[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.intensities[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndHorizontal(); GUILayout.Space(4); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Range", TSSEditorUtils.max80pxWidth); TSSEditorUtils.DrawGenericProperty(ref values.lightRange[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.lightRange[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndHorizontal(); break; case ItemEffect.range: EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Light", TSSEditorUtils.max80pxWidth); TSSEditorUtils.DrawGenericProperty(ref values.lightRange[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.lightRange[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndHorizontal(); GUILayout.Space(4); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Collider", TSSEditorUtils.max80pxWidth); TSSEditorUtils.DrawGenericProperty(ref values.sphereRange[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.sphereRange[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndHorizontal(); GUILayout.Space(4); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Sound", TSSEditorUtils.max80pxWidth); TSSEditorUtils.DrawGenericProperty(ref values.soundRange[0], TSSEditorUtils.redColor, parent); TSSEditorUtils.DrawGenericProperty(ref values.soundRange[1], TSSEditorUtils.greenColor, parent); EditorGUILayout.EndHorizontal(); break; } EditorGUILayout.EndVertical(); } EditorGUI.EndDisabledGroup(); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); GUILayout.Space(3); return(true); }
private void DrawLerpGUI() { bool isLinearLerp = path.item.values.pathLerpMode == PathLerpMode.baked; if (isLinearLerp) { EditorGUILayout.BeginVertical(EditorStyles.helpBox); } EditorGUILayout.BeginHorizontal(); TSSEditorUtils.DrawGenericProperty(ref path.item.values.pathLerpMode, lerpModeContent, path.item); if (isLinearLerp && path.item.values.pathLerpMode == PathLerpMode.dynamic) { Undo.RecordObjects(new Object[] { path, path.item }, "[TSS Path] Delete segments"); path.pointsAttach = new List <Transform>(); path.pointsAttach.AddRange(new Transform[path.segmentsCount + 1]); } if (!isLinearLerp && path.item.values.pathLerpMode == PathLerpMode.baked) { Undo.RecordObjects(new Object[] { path, path.item }, "[TSS Path] Split segment"); path.pointsAttach = null; path.UpdateSpacedPoints(); } if (isLinearLerp && GUILayout.Button(bakeButtonContent, TSSEditorUtils.max80pxWidth, TSSEditorUtils.fixedLineHeight)) { path.UpdateSpacedPoints(); } EditorGUILayout.EndHorizontal(); if (isLinearLerp) { GUILayout.Space(4); float pathSpacing = path.spacing; TSSEditorUtils.DrawSliderProperty(ref pathSpacing, path.item, qualitySpacingContent, 2, 100); if (pathSpacing != path.spacing) { path.spacing = Mathf.CeilToInt(pathSpacing); } ; float pathResolution = path.resolution; TSSEditorUtils.DrawSliderProperty(ref pathResolution, path.item, qualityResolutionContent, 1, 10); if (pathResolution != path.resolution) { path.resolution = Mathf.CeilToInt(pathResolution); } } if (isLinearLerp) { EditorGUILayout.EndVertical(); } }