private void DrawItem(TSSItem item) { GUI.backgroundColor = new Color(0f, 0f, 0f, 0.5f); EditorGUILayout.BeginHorizontal(EditorStyles.helpBox); GUI.backgroundColor = Color.white; EditorGUILayout.ObjectField(item, typeof(TSSItem), true); if (GUILayout.Button(applyProfileButton, TSSEditorUtils.fixedLineHeight)) { Undo.RecordObject(item, "[TSS Profile] applying profile"); TSSProfile.ProfileRevert(item, item.profile); } if (GUILayout.Button(revertProfileButton, TSSEditorUtils.fixedLineHeight)) { if (EditorUtility.DisplayDialog(confirmRevertTitle.text, string.Format(confirmRevertMessage.text, item.name), "Yes", "No")) { Undo.RecordObject(item.profile, "[TSS Profile] reverting profile"); TSSProfile.ProfileApply(item, item.profile); } } EditorGUILayout.EndHorizontal(); }
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(); }