예제 #1
0
        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;
                }
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
        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();
            }
        }