Exemplo n.º 1
0
        private bool DrawState(TSSState state, int stateID)
        {
            if (state == null)
            {
                return(false);
            }

            EditorGUILayout.BeginVertical();

            TSSEditorUtils.BeginBlackVertical();

            EditorGUILayout.BeginHorizontal();

            bool isStateEnabled = state.enabled;

            TSSEditorUtils.DrawGenericProperty(ref isStateEnabled, core);
            if (core.currentState == state && state.enabled && !isStateEnabled)
            {
                if (Application.isPlaying)
                {
                    state.Close();
                }
                else
                {
                    state.ActivateManualy(ActivationMode.closeBranchImmediately);
                }
                core.currentState = null;
            }

            state.enabled = isStateEnabled;

            EditorGUI.BeginDisabledGroup(!state.enabled);

            state.editing = EditorGUILayout.Foldout(state.editing, string.Format("   {0} {1}", state.name, state == core.defaultState ? " (default)" : string.Empty), true, stateFoldAutStyle);

            if (state != core.defaultState && GUILayout.Button(stateSetDefault, TSSEditorUtils.max80pxWidth, TSSEditorUtils.fixedLineHeight))
            {
                Undo.RecordObject(core, "[TSS Core] default state");
                core.SetDefaultState(state);
            }

            else if (state == core.defaultState && GUILayout.Button(stateUnsetDefault, TSSEditorUtils.max80pxWidth, TSSEditorUtils.fixedLineHeight))
            {
                Undo.RecordObject(core, "[TSS Core] default state");
                core.SetDefaultState();
            }

            if (core.currentState == state)
            {
                GUI.color = TSSEditorUtils.greenColor;
            }

            if (GUILayout.Button(stateSelect, TSSEditorUtils.max50pxWidth, TSSEditorUtils.fixedLineHeight))
            {
                SelectState(state);
            }

            GUI.color = Color.white;

            EditorGUI.EndDisabledGroup();

            if (DrawStateDeleteButton(state))
            {
                return(false);
            }

            EditorGUILayout.EndHorizontal();

            EditorGUI.BeginDisabledGroup(!state.enabled);

            if (state.editing)
            {
                TSSEditorUtils.DrawGenericProperty(ref state.name, "State Name", core);

                TSSEditorUtils.DrawSeparator();
                DrawStateItems(state);

                TSSEditorUtils.DrawSeparator();
                TSSEditorUtils.DrawEventProperty(statesProperty.GetArrayElementAtIndex(stateID), "onOpen", state.onOpen.GetPersistentEventCount());
                GUILayout.Space(3);
                TSSEditorUtils.DrawEventProperty(statesProperty.GetArrayElementAtIndex(stateID), "onClose", state.onClose.GetPersistentEventCount());

                if (core.useInput)
                {
                    TSSEditorUtils.DrawSeparator();
                    TSSEditorUtils.DrawKeyCodeListProperty(state.onKeyboard, core, statesProperty.GetArrayElementAtIndex(stateID).FindPropertyRelative("onKeyboard"), false);
                }
            }

            EditorGUI.EndDisabledGroup();

            EditorGUILayout.EndVertical();
            EditorGUILayout.EndVertical();
            GUILayout.Space(3);

            return(true);
        }
Exemplo n.º 2
0
        private void DrawAdvancedPanel()
        {
            GUILayout.Space(3);
            EditorGUILayout.BeginVertical(GUI.skin.box);

            foldOutAdvanced.target = EditorGUILayout.Foldout(foldOutAdvanced.target, "   Advanced", true, GUI.skin.label);

            if (foldOutAdvanced.faded > 0)
            {
                EditorGUILayout.BeginFadeGroup(foldOutAdvanced.faded);

                GUILayout.Space(3);

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;

                bool profilePropertyIdentical = ValuesIsIdentical(GetSelectedItemsValues <TSSProfile>("profile"));

                EditorGUILayout.BeginHorizontal();
                DrawItemProperty(item, "profile");
                if (item.profile == null && profilePropertyIdentical && GUILayout.Button(TSSEditorUtils.addKeyButtonContent, TSSEditorUtils.max18pxWidth))
                {
                    item.profile = TSSProfileEditor.CreateProfileAsset();
                    TSSProfile.ProfileApply(item, item.profile);
                    Selection.SetActiveObjectWithContext(item.gameObject, item);
                }
                if (item.profile != null && profilePropertyIdentical && GUILayout.Button(TSSEditorUtils.delKeyButtonContent, TSSEditorUtils.max18pxWidth))
                {
                    item.profile = null;
                }
                EditorGUILayout.EndHorizontal();

                if (item.profile != null && profilePropertyIdentical)
                {
                    EditorGUILayout.BeginHorizontal();
                    if (GUILayout.Button(applyProfileButton))
                    {
                        Undo.RecordObject(item.profile, "[TSS Item] applying profile");
                        TSSProfile.ProfileApply(item, item.profile);
                    }

                    if (GUILayout.Button(revertProfileButton))
                    {
                        foreach (Transform itemTransform in Selection.transforms)
                        {
                            TSSItem item = itemTransform.GetComponent <TSSItem>();
                            if (item == null)
                            {
                                continue;
                            }
                            Undo.RecordObject(item, "[TSS Item] revert profile");
                            TSSProfile.ProfileRevert(item, item.profile);
                        }
                    }
                    EditorGUILayout.EndHorizontal();
                }

                EditorGUILayout.EndVertical();

                TSSEditorUtils.BeginBlackVertical();

                EditorGUILayout.BeginHorizontal();
                DrawItemProperty(item, "activationOpen");
                DrawItemProperty(item, "activationClose");
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                DrawItemProperty(item, "activationStart");
                EditorGUILayout.BeginVertical();
                DrawItemProperty(item, "loops");
                if (item.loops != 0 && ValuesIsIdentical(GetSelectedItemsValues <int>("loops")))
                {
                    DrawItemProperty(item, "loopMode", null, null, false, true);
                }
                EditorGUILayout.EndVertical();
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.EndVertical();

                TSSEditorUtils.BeginBlackVertical();
                EditorGUILayout.BeginHorizontal();
                DrawItemProperty(item, "ignoreChilds");
                DrawItemProperty(item, "ignoreParent");
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.EndVertical();

                TSSEditorUtils.BeginBlackVertical();
                EditorGUILayout.BeginHorizontal();
                DrawItemProperty(item, "rotationMode");
                DrawItemProperty(item, "materialMode");
                EditorGUILayout.EndHorizontal();

                if (ValuesIsIdentical(GetSelectedItemsValues <RotationMode>("rotationMode")) && item.rotationMode == RotationMode.path)
                {
                    EditorGUILayout.BeginHorizontal();

                    EditorGUILayout.LabelField(rotationMaskContent, GUILayout.MaxWidth(98));

                    DrawItemProperty(item, "rotationMaskX", "X", TSSEditorUtils.max18pxWidth);
                    DrawItemProperty(item, "rotationMaskY", "Y", TSSEditorUtils.max18pxWidth);
                    DrawItemProperty(item, "rotationMaskZ", "Z", TSSEditorUtils.max18pxWidth);

                    EditorGUILayout.EndHorizontal();

                    EditorGUILayout.BeginHorizontal();
                    DrawItemProperty(item, "pathNormal");
                    EditorGUILayout.EndHorizontal();
                }

                EditorGUILayout.EndVertical();

                TSSEditorUtils.BeginBlackVertical();
                EditorGUILayout.BeginHorizontal();
                DrawItemProperty(item, "interactions");
                DrawItemProperty(item, "blockRaycasting");
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.EndVertical();

                TSSEditorUtils.BeginBlackVertical();
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.BeginVertical();
                DrawItemProperty(item, "soundControl");
                if (item.soundControl && ValuesIsIdentical(GetSelectedItemsValues <bool>("soundControl")))
                {
                    DrawItemProperty(item, "soundRestart");
                }
                EditorGUILayout.EndVertical();

                EditorGUILayout.BeginVertical();
                DrawItemProperty(item, "videoControl");
                if (item.videoControl && ValuesIsIdentical(GetSelectedItemsValues <bool>("videoControl")))
                {
                    DrawItemProperty(item, "videoRestart");
                }
                EditorGUILayout.EndVertical();
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.EndVertical();

                if (item.text != null)
                {
                    TSSEditorUtils.BeginBlackVertical();
                    EditorGUILayout.BeginHorizontal();
                    DrawItemProperty(item, "randomWave");
                    string floatFormat = item.floatFormat;
                    DrawItemProperty(item, "floatFormat");
                    if (floatFormat != item.floatFormat)
                    {
                        try { 0f.ToString(item.floatFormat); }
                        catch { Debug.LogWarningFormat("TSS Item \"{0}({1})\" has uncorrect float format!", item.name, item.GetInstanceID()); item.floatFormat = floatFormat; }
                    }
                    EditorGUILayout.EndHorizontal();
                    EditorGUILayout.EndVertical();
                }

                if (item.button != null || (item.parent != null && item.parent.button != null && item.tweens.Where(t => t.enabled && t.direction == TweenDirection.Button).ToArray().Length > 0))
                {
                    TSSEditorUtils.BeginBlackVertical();

                    EditorGUILayout.BeginHorizontal();
                    DrawItemProperty(item, "buttonDuration");
                    DrawItemProperty(item, "buttonDirection");
                    EditorGUILayout.EndHorizontal();


                    if (item.button != null && Selection.transforms.Length == 1)
                    {
                        TSSEditorUtils.DrawKeyCodeListProperty(item.values.onKeyboard, item, serializedItem.FindProperty("values").FindPropertyRelative("onKeyboard"), false);
                    }

                    EditorGUILayout.EndVertical();
                }

                TSSEditorUtils.BeginBlackVertical();
                EditorGUILayout.BeginHorizontal();
                DrawItemProperty(item, "updatingType");
                DrawItemProperty(item, "timeScaled", null, GUILayout.MaxWidth(80), true);
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.EndVertical();

                EditorGUILayout.EndFadeGroup();
            }
            EditorGUILayout.EndVertical();
        }
Exemplo n.º 3
0
        private void DrawValuesPanel()
        {
            GUILayout.Space(3);
            EditorGUILayout.BeginVertical(GUI.skin.box);

            EditorGUILayout.BeginHorizontal();
            foldOutValues.target = EditorGUILayout.Foldout(foldOutValues.target, "   Values", true, GUI.skin.label);
            EditorGUILayout.EndHorizontal();

            if (foldOutValues.faded > 0)
            {
                EditorGUILayout.BeginFadeGroup(foldOutValues.faded);

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Start activation", TSSEditorUtils.max120pxWidth);
                profile.values.startAction = (ActivationMode)EditorGUILayout.EnumPopup(profile.values.startAction);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Activation modes", TSSEditorUtils.max120pxWidth);
                profile.values.activations[0] = (ActivationMode)EditorGUILayout.EnumPopup(profile.values.activations[0]);
                profile.values.activations[1] = (ActivationMode)EditorGUILayout.EnumPopup(profile.values.activations[1]);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Delays", TSSEditorUtils.max120pxWidth);
                profile.values.delays[0] = EditorGUILayout.FloatField(profile.values.delays[0]);
                profile.values.delays[1] = EditorGUILayout.FloatField(profile.values.delays[1]);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Durations", TSSEditorUtils.max120pxWidth);
                profile.values.durations[0] = EditorGUILayout.FloatField(profile.values.durations[0]);
                profile.values.durations[1] = EditorGUILayout.FloatField(profile.values.durations[1]);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Childs before", TSSEditorUtils.max120pxWidth);
                profile.values.childBefore[0] = EditorGUILayout.Toggle(profile.values.childBefore[0]);
                profile.values.childBefore[1] = EditorGUILayout.Toggle(profile.values.childBefore[1]);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Chain delays", TSSEditorUtils.max120pxWidth);
                profile.values.chainDelays[0] = EditorGUILayout.FloatField(profile.values.chainDelays[0]);
                profile.values.chainDelays[1] = EditorGUILayout.FloatField(profile.values.chainDelays[1]);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Chain first child delays", TSSEditorUtils.max120pxWidth);
                profile.values.firstChildDelay[0] = EditorGUILayout.FloatField(profile.values.firstChildDelay[0]);
                profile.values.firstChildDelay[1] = EditorGUILayout.FloatField(profile.values.firstChildDelay[1]);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Chain directions", TSSEditorUtils.max120pxWidth);
                profile.values.chainDirections[0] = (ChainDirection)EditorGUILayout.EnumPopup(profile.values.chainDirections[0]);
                profile.values.chainDirections[1] = (ChainDirection)EditorGUILayout.EnumPopup(profile.values.chainDirections[1]);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Rotation mode", TSSEditorUtils.max120pxWidth);
                profile.values.rotationMode = (RotationMode)EditorGUILayout.EnumPopup(profile.values.rotationMode);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Rotation mask", TSSEditorUtils.max120pxWidth);
                profile.values.rotationMask = EditorGUILayout.Vector3Field(string.Empty, profile.values.rotationMask);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Material mode", TSSEditorUtils.max120pxWidth);
                profile.values.materialMode = (MaterialMode)EditorGUILayout.EnumPopup(profile.values.materialMode);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Chain mode", TSSEditorUtils.max120pxWidth);
                profile.values.childChainMode = EditorGUILayout.Toggle(profile.values.childChainMode);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Ignore childs", TSSEditorUtils.max120pxWidth);
                profile.values.ignoreChilds = EditorGUILayout.Toggle(profile.values.ignoreChilds);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Ignore parent", TSSEditorUtils.max120pxWidth);
                profile.values.ignoreParent = EditorGUILayout.Toggle(profile.values.ignoreParent);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Break chain delays", TSSEditorUtils.max120pxWidth);
                profile.values.brakeChainDelay = EditorGUILayout.Toggle(profile.values.brakeChainDelay);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Interactions", TSSEditorUtils.max120pxWidth);
                profile.values.interactions = EditorGUILayout.Toggle(profile.values.interactions);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Block raycastring", TSSEditorUtils.max120pxWidth);
                profile.values.blockRaycasting = EditorGUILayout.Toggle(profile.values.blockRaycasting);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Sound control", TSSEditorUtils.max120pxWidth);
                profile.values.soundControl = EditorGUILayout.Toggle(profile.values.soundControl);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Sound restart", TSSEditorUtils.max120pxWidth);
                profile.values.soundRestart = EditorGUILayout.Toggle(profile.values.soundRestart);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Video control", TSSEditorUtils.max120pxWidth);
                profile.values.videoControl = EditorGUILayout.Toggle(profile.values.videoControl);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Video restart", TSSEditorUtils.max120pxWidth);
                profile.values.videoRestart = EditorGUILayout.Toggle(profile.values.videoRestart);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Float format", TSSEditorUtils.max120pxWidth);
                profile.values.floatFormat = EditorGUILayout.TextField(profile.values.floatFormat);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Text typing wave", TSSEditorUtils.max120pxWidth);
                profile.values.randomWaveLength = EditorGUILayout.IntField(profile.values.randomWaveLength);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Button duration", TSSEditorUtils.max120pxWidth);
                profile.values.buttonDuration = EditorGUILayout.FloatField(profile.values.buttonDuration);
                EditorGUILayout.EndHorizontal();

                TSSEditorUtils.DrawKeyCodeListProperty(profile.values.onKeyboard, profile, true);

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Loops", TSSEditorUtils.max120pxWidth);
                profile.values.loops = EditorGUILayout.IntField(profile.values.loops);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Loop mode", TSSEditorUtils.max120pxWidth);
                profile.values.loopMode = (ActivationMode)EditorGUILayout.EnumPopup(profile.values.loopMode);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Positions", TSSEditorUtils.max120pxWidth);
                profile.values.positions[0] = EditorGUILayout.Vector3Field(string.Empty, profile.values.positions[0]);
                profile.values.positions[1] = EditorGUILayout.Vector3Field(string.Empty, profile.values.positions[1]);
                EditorGUILayout.EndVertical();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Quaternion", TSSEditorUtils.max120pxWidth);
                profile.values.rotations[0] = Quaternion.Euler(EditorGUILayout.Vector3Field("", profile.values.rotations[0].eulerAngles));
                profile.values.rotations[1] = Quaternion.Euler(EditorGUILayout.Vector3Field("", profile.values.rotations[1].eulerAngles));
                EditorGUILayout.EndVertical();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Euler angles", TSSEditorUtils.max120pxWidth);
                profile.values.eulerRotations[0] = EditorGUILayout.Vector3Field(string.Empty, profile.values.eulerRotations[0]);
                profile.values.eulerRotations[1] = EditorGUILayout.Vector3Field(string.Empty, profile.values.eulerRotations[1]);
                EditorGUILayout.EndVertical();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Scales", TSSEditorUtils.max120pxWidth);
                profile.values.scales[0] = EditorGUILayout.Vector3Field(string.Empty, profile.values.scales[0]);
                profile.values.scales[1] = EditorGUILayout.Vector3Field(string.Empty, profile.values.scales[1]);
                EditorGUILayout.EndVertical();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Colors", TSSEditorUtils.max120pxWidth);
                profile.values.colors[0] = EditorGUILayout.ColorField("", profile.values.colors[0]);
                profile.values.colors[1] = EditorGUILayout.ColorField("", profile.values.colors[1]);
                EditorGUILayout.EndVertical();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Alphas", TSSEditorUtils.max120pxWidth);
                profile.values.alphas[0] = EditorGUILayout.FloatField(profile.values.alphas[0]);
                profile.values.alphas[1] = EditorGUILayout.FloatField(profile.values.alphas[1]);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Image fillings", TSSEditorUtils.max120pxWidth);
                profile.values.imageFills[0] = EditorGUILayout.FloatField(profile.values.imageFills[0]);
                profile.values.imageFills[1] = EditorGUILayout.FloatField(profile.values.imageFills[1]);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Numbers", TSSEditorUtils.max120pxWidth);
                profile.values.numbers[0] = EditorGUILayout.FloatField(profile.values.numbers[0]);
                profile.values.numbers[1] = EditorGUILayout.FloatField(profile.values.numbers[1]);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Texts", TSSEditorUtils.max120pxWidth);
                profile.values.texts[0] = EditorGUILayout.TextArea(profile.values.texts[0]);
                profile.values.texts[1] = EditorGUILayout.TextArea(profile.values.texts[1]);
                EditorGUILayout.EndVertical();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Rects", TSSEditorUtils.max120pxWidth);
                profile.values.rects[0] = EditorGUILayout.Vector4Field("", profile.values.rects[0]);
                profile.values.rects[1] = EditorGUILayout.Vector4Field("", profile.values.rects[1]);
                EditorGUILayout.EndVertical();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Anchors", TSSEditorUtils.max120pxWidth);
                profile.values.anchors[0] = EditorGUILayout.Vector4Field("", profile.values.anchors[0]);
                profile.values.anchors[1] = EditorGUILayout.Vector4Field("", profile.values.anchors[1]);
                EditorGUILayout.EndVertical();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Anchors positions", TSSEditorUtils.max120pxWidth);
                profile.values.anchorPositions[0] = EditorGUILayout.Vector2Field("", profile.values.anchorPositions[0]);
                profile.values.anchorPositions[1] = EditorGUILayout.Vector2Field("", profile.values.anchorPositions[1]);
                EditorGUILayout.EndVertical();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Intensities", TSSEditorUtils.max120pxWidth);
                profile.values.intensities[0] = EditorGUILayout.FloatField(profile.values.intensities[0]);
                profile.values.intensities[1] = EditorGUILayout.FloatField(profile.values.intensities[1]);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Light ranges", TSSEditorUtils.max120pxWidth);
                profile.values.lightRange[0] = EditorGUILayout.FloatField(profile.values.lightRange[0]);
                profile.values.lightRange[1] = EditorGUILayout.FloatField(profile.values.lightRange[1]);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Sound ranges", TSSEditorUtils.max120pxWidth);
                profile.values.soundRange[0] = EditorGUILayout.FloatField(profile.values.soundRange[0]);
                profile.values.soundRange[1] = EditorGUILayout.FloatField(profile.values.soundRange[1]);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Collider range", TSSEditorUtils.max120pxWidth);
                profile.values.sphereRange[0] = EditorGUILayout.FloatField(profile.values.sphereRange[0]);
                profile.values.sphereRange[1] = EditorGUILayout.FloatField(profile.values.sphereRange[1]);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Updating type", TSSEditorUtils.max120pxWidth);
                profile.values.updatingType = (ItemUpdateType)EditorGUILayout.EnumPopup(profile.values.updatingType);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Time scaling", TSSEditorUtils.max120pxWidth);
                profile.values.timeScaled = EditorGUILayout.Toggle(profile.values.timeScaled);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Path loop mode", TSSEditorUtils.max120pxWidth);
                profile.values.pathIsLooped = EditorGUILayout.Toggle(profile.values.pathIsLooped);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Path auto control", TSSEditorUtils.max120pxWidth);
                profile.values.pathAutoControl = EditorGUILayout.Toggle(profile.values.pathAutoControl);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Path smoothing", TSSEditorUtils.max120pxWidth);
                profile.values.pathSmoothFactor = EditorGUILayout.FloatField(profile.values.pathSmoothFactor);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Path resolution", TSSEditorUtils.max120pxWidth);
                profile.values.pathResolution = EditorGUILayout.IntField(profile.values.pathResolution);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Path spacing", TSSEditorUtils.max120pxWidth);
                profile.values.pathSpacing = EditorGUILayout.IntField(profile.values.pathSpacing);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Path normal", TSSEditorUtils.max120pxWidth);
                profile.values.pathNormal = (PathNormal)EditorGUILayout.EnumPopup(profile.values.pathNormal);
                EditorGUILayout.EndHorizontal();

                GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f);
                EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
                GUI.backgroundColor = Color.white;
                EditorGUILayout.LabelField("Path lerping", TSSEditorUtils.max120pxWidth);
                profile.values.pathLerpMode = (PathLerpMode)EditorGUILayout.EnumPopup(profile.values.pathLerpMode);
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.EndFadeGroup();
            }

            EditorGUILayout.EndVertical();
        }