BITFALL/Assets/GSpawn - Level Designer/Scripts/Level Design/Object Selection/ObjectSelectionUI.cs

476 lines
29 KiB
C#

#if UNITY_EDITOR
using UnityEngine;
using UnityEditor.UIElements;
using UnityEngine.UIElements;
namespace GSpawn
{
public class ObjectSelectionUI : PluginUI
{
private enum ViewId
{
Settings = 0,
TransformTools,
Misc
}
private ToolbarButton _moveGimzoBtn;
private ToolbarButton _rotationGizmoBtn;
private ToolbarButton _scaleGizmoBtn;
private ToolbarButton _universalGizmoBtn;
private ToolbarButton _extrudeGizmoBtn;
private ToolbarButton _mirrorGizmoBtn;
private ToolbarButton _gizmoPivotBtn;
private ToolbarButton _gizmoTransformSpaceBtn;
private ToolbarButton _selectionRectBtn;
private ToolbarButton _selectionSegmentsBtn;
private ToolbarButton _selectionBoxBtn;
private ToolbarButton _settingsBtn;
private ToolbarButton _transformToolsBtn;
private ToolbarButton _miscBtn;
private Button _projectOnGridBtn;
private Button _projectOnObjectBtn;
[SerializeField]
private ViewId _activeViewId = ViewId.Settings;
[SerializeField]
private UISection _transformSection;
[SerializeField]
private ObjectTransformUI _transformUI;
[SerializeField]
private UISection _selectionSettingsSection;
[SerializeField]
private UISection _extrudeGizmoSettingsSection;
[SerializeField]
private UISection _mirrorGizmoSettingsSection;
[SerializeField]
private UISection _modularSnapSettingsSection;
[SerializeField]
private UISection _surfaceSnapSettingsSection;
[SerializeField]
private UISection _projectionSettingsSection;
[SerializeField]
private UISection _vertexSnapSettingsSection;
[SerializeField]
private UISection _boxSnapSettingsSection;
[SerializeField]
private UISection _selectionGrowSettingsSection;
private UISection transformSection { get { if (_transformSection == null) _transformSection = ScriptableObject.CreateInstance<UISection>(); return _transformSection; } }
private ObjectTransformUI transformUI { get { if (_transformUI == null) _transformUI = ScriptableObject.CreateInstance<ObjectTransformUI>(); return _transformUI; } }
private UISection selectionSettingsSection { get { if (_selectionSettingsSection == null) _selectionSettingsSection = ScriptableObject.CreateInstance<UISection>(); return _selectionSettingsSection; } }
private UISection extrudeGizmoSettingsSection { get { if (_extrudeGizmoSettingsSection == null) _extrudeGizmoSettingsSection = ScriptableObject.CreateInstance<UISection>(); return _extrudeGizmoSettingsSection; } }
private UISection mirrorGizmoSettingsSection { get { if (_mirrorGizmoSettingsSection == null) _mirrorGizmoSettingsSection = ScriptableObject.CreateInstance<UISection>(); return _mirrorGizmoSettingsSection; } }
private UISection modularSnapSettingsSection { get { if (_modularSnapSettingsSection == null) _modularSnapSettingsSection = ScriptableObject.CreateInstance<UISection>(); return _modularSnapSettingsSection; } }
private UISection surfaceSnapSettingsSection { get { if (_surfaceSnapSettingsSection == null) _surfaceSnapSettingsSection = ScriptableObject.CreateInstance<UISection>(); return _surfaceSnapSettingsSection; } }
private UISection projectionSettingsSection { get { if (_projectionSettingsSection == null) _projectionSettingsSection = ScriptableObject.CreateInstance<UISection>(); return _projectionSettingsSection; } }
private UISection vertexSnapSettingsSection { get { if (_vertexSnapSettingsSection == null) _vertexSnapSettingsSection = ScriptableObject.CreateInstance<UISection>(); return _vertexSnapSettingsSection; } }
private UISection boxSnapSettingsSection { get { if (_boxSnapSettingsSection == null) _boxSnapSettingsSection = ScriptableObject.CreateInstance<UISection>(); return _boxSnapSettingsSection; } }
private UISection selectionGrowSettingsSection { get { if (_selectionGrowSettingsSection == null) _selectionGrowSettingsSection = ScriptableObject.CreateInstance<UISection>(); return _selectionGrowSettingsSection; } }
private static string uiSectionRowSeparator_Transform { get { return "A"; } }
private static string uiSectionRowSeparator_Settings { get { return "B"; } }
private static string uiSectionRowSeparator_TransformTools { get { return "C"; } }
private static string uiSectionRowSeparator_Misc { get { return "D"; } }
public ObjectTransformUI objectTransformUI { get { return transformUI; } }
public static ObjectSelectionUI instance { get { return GSpawn.active.objectSelectionUI; } }
public void setObjectTransformUIEnabled(bool enabled)
{
if (ready)
{
transformSection.contentContainer.SetEnabled(enabled);
}
}
public void refreshObjectTransformUI()
{
if (ready)
{
transformUI.refresh();
transformSection.setTitle(getTransformUISectionTitle());
}
}
protected override void onRefresh()
{
refreshGizmoSelectionButtons();
refreshGizmoPivotButton();
refreshGizmoTransformSpaceButton();
refreshObjectSelectShapeButtons();
refreshViewSelectionButtons();
refreshTooltips();
transformUI.refreshTooltips();
updateVisibility();
}
protected override void onBuild()
{
var toolbarContainer = new VisualElement();
toolbarContainer.style.flexDirection = FlexDirection.Row;
contentContainer.Add(toolbarContainer);
Toolbar toolbar = UI.createStylizedToolbar(toolbarContainer);
toolbar.style.height = UIValues.mediumToolbarButtonSize + 2.0f;
toolbar.style.borderRightColor = UIValues.toolbarBorderColor;
toolbar.style.borderRightWidth = 1.0f;
toolbar.style.borderBottomWidth = 1.0f;
toolbar.style.borderBottomColor = UIValues.toolbarBorderColor;
_moveGimzoBtn = UI.createSmallToolSelectionToolbarButton(TexturePool.instance.moveGizmo, "", toolbar);
_moveGimzoBtn.clicked += () =>
{
ObjectSelectionGizmos.instance.setGizmoEnabled(ObjectSelectionGizmoId.Move, true, true, ObjectSelectionGizmoId.Mirror);
SceneViewEx.focus();
};
_rotationGizmoBtn = UI.createSmallToolSelectionToolbarButton(TexturePool.instance.rotationGizmo, "", toolbar);
_rotationGizmoBtn.clicked += () =>
{
ObjectSelectionGizmos.instance.setGizmoEnabled(ObjectSelectionGizmoId.Rotate, true, true, ObjectSelectionGizmoId.Mirror);
SceneViewEx.focus();
};
_scaleGizmoBtn = UI.createSmallToolSelectionToolbarButton(TexturePool.instance.scaleGizmo, "", toolbar);
_scaleGizmoBtn.clicked += () =>
{
ObjectSelectionGizmos.instance.setGizmoEnabled(ObjectSelectionGizmoId.Scale, true, true, ObjectSelectionGizmoId.Mirror);
SceneViewEx.focus();
};
_universalGizmoBtn = UI.createSmallToolSelectionToolbarButton(TexturePool.instance.universalGizmo, "", toolbar);
_universalGizmoBtn.clicked += () =>
{
ObjectSelectionGizmos.instance.setGizmoEnabled(ObjectSelectionGizmoId.Universal, true, true, ObjectSelectionGizmoId.Mirror);
SceneViewEx.focus();
};
_extrudeGizmoBtn = UI.createSmallToolSelectionToolbarButton(TexturePool.instance.extrudeGizmo, "", toolbar);
_extrudeGizmoBtn.clicked += () =>
{
ObjectSelectionGizmos.instance.setGizmoEnabled(ObjectSelectionGizmoId.Extrude, true, true, ObjectSelectionGizmoId.Mirror);
SceneViewEx.focus();
};
_mirrorGizmoBtn = UI.createSmallToolSelectionToolbarButton(TexturePool.instance.mirrorGizmo, "", toolbar);
_mirrorGizmoBtn.clicked += () =>
{
ObjectSelectionGizmos.instance.setGizmoEnabled(ObjectSelectionGizmoId.Mirror, !ObjectSelectionGizmos.instance.isGizmoEnabled(ObjectSelectionGizmoId.Mirror), false);
SceneViewEx.focus();
};
refreshGizmoSelectionButtons();
toolbar = UI.createStylizedToolbar(toolbarContainer);
toolbar.style.height = UIValues.mediumToolbarButtonSize + 2.0f;
toolbar.style.flexGrow = 1.0f;
toolbar.style.borderBottomWidth = 1.0f;
toolbar.style.borderBottomColor = UIValues.toolbarBorderColor;
_gizmoPivotBtn = UI.createSmallToolSelectionToolbarButton(TexturePool.instance.gizmoCenterPivot, "", toolbar);
_gizmoPivotBtn.clicked += () =>
{
ObjectSelectionGizmos.instance.transformPivot = ObjectSelectionGizmos.instance.transformPivot == ObjectGizmoTransformPivot.Center ? ObjectGizmoTransformPivot.Mesh : ObjectGizmoTransformPivot.Center;
SceneViewEx.focus();
};
_gizmoTransformSpaceBtn = UI.createSmallToolSelectionToolbarButton(TexturePool.instance.gizmoLocalTransformSpace, "", toolbar);;
_gizmoTransformSpaceBtn.clicked += () =>
{
ObjectSelectionGizmos.instance.transformSpace = ObjectSelectionGizmos.instance.transformSpace == ObjectGizmoTransformSpace.Global ? ObjectGizmoTransformSpace.Local : ObjectGizmoTransformSpace.Global;
SceneViewEx.focus();
};
toolbar = UI.createToolSelectionToolbar(contentContainer);
_selectionRectBtn = UI.createMediumToolSelectionToolbarButton(TexturePool.instance.selectionRect, "", toolbar);
_selectionRectBtn.style.marginTop = 1.0f;
_selectionRectBtn.clicked += () =>
{
ObjectSelection.instance.selectionShapeType = ObjectSelectionShape.Type.Rect;
SceneViewEx.focus();
};
_selectionSegmentsBtn = UI.createMediumToolSelectionToolbarButton(TexturePool.instance.selectionSegments, "", toolbar);
_selectionSegmentsBtn.style.marginTop = 1.0f;
_selectionSegmentsBtn.clicked += () =>
{
ObjectSelection.instance.selectionShapeType = ObjectSelectionShape.Type.Segments;
SceneViewEx.focus();
};
_selectionBoxBtn = UI.createMediumToolSelectionToolbarButton(TexturePool.instance.selectionBox, "", toolbar);
_selectionBoxBtn.style.marginTop = 1.0f;
_selectionBoxBtn.clicked += () =>
{
ObjectSelection.instance.selectionShapeType = ObjectSelectionShape.Type.Box;
SceneViewEx.focus();
};
refreshGizmoPivotButton();
refreshGizmoTransformSpaceButton();
refreshObjectSelectShapeButtons();
toolbar = UI.createToolSelectionToolbar(contentContainer);
_settingsBtn = UI.createToolbarButton(TexturePool.instance.settings, UI.ButtonStyle.Push, UIValues.mediumToolbarButtonSize, toolbar);
UI.useDefaultMargins(_settingsBtn);
_settingsBtn.style.marginTop = 1.0f;
_settingsBtn.tooltip = "Settings";
_settingsBtn.clicked += () =>
{
_activeViewId = ViewId.Settings;
updateVisibility();
refreshViewSelectionButtons();
SceneViewEx.focus();
};
_transformToolsBtn = UI.createToolbarButton(TexturePool.instance.transform, UI.ButtonStyle.Push, UIValues.mediumToolbarButtonSize, toolbar);
UI.useDefaultMargins(_transformToolsBtn);
_transformToolsBtn.style.marginTop = 1.0f;
_transformToolsBtn.tooltip = "Transform tools";
_transformToolsBtn.clicked += () =>
{
_activeViewId = ViewId.TransformTools;
updateVisibility();
refreshViewSelectionButtons();
SceneViewEx.focus();
};
_miscBtn = UI.createToolbarButton(TexturePool.instance.misc, UI.ButtonStyle.Push, UIValues.mediumToolbarButtonSize, toolbar);
UI.useDefaultMargins(_miscBtn);
_miscBtn.tooltip = "Misc";
_miscBtn.clicked += () =>
{
_activeViewId = ViewId.Misc;
updateVisibility();
refreshViewSelectionButtons();
SceneViewEx.focus();
};
transformSection.build(getTransformUISectionTitle(), TexturePool.instance.transform, true, contentContainer);
transformUI.build(ObjectSelection.instance.objectCollection, transformSection.contentContainer);
transformUI.visibilityCondition = () => { return uiVisibleAndReady; };
UI.createUISectionRowSeparator(contentContainer, uiSectionRowSeparator_Settings);
selectionSettingsSection.build("Selection", TexturePool.instance.settings, true, contentContainer);
ObjectSelection.instance.settings.buildUI(selectionSettingsSection.contentContainer);
UI.createUISectionRowSeparator(contentContainer, uiSectionRowSeparator_Settings);
extrudeGizmoSettingsSection.build("Extrude Gizmo", TexturePool.instance.extrudeGizmo, true, contentContainer);
ObjectSelectionGizmos.instance.extrudeGizmoSettings.buildUI(extrudeGizmoSettingsSection.contentContainer);
UI.createUISectionRowSeparator(contentContainer, uiSectionRowSeparator_Settings);
mirrorGizmoSettingsSection.build("Mirror Gizmo", TexturePool.instance.mirrorGizmo, true, contentContainer);
UI.createPositionField(PluginGizmo.positionPropertyName, ObjectSelectionGizmos.instance.mirrorGizmoSerializedObject, "Mirror gizmo position", mirrorGizmoSettingsSection.contentContainer);
UI.createRotationField(PluginGizmo.rotationPropertyName, ObjectSelectionGizmos.instance.mirrorGizmoSerializedObject, "Mirror gizmo rotation", mirrorGizmoSettingsSection.contentContainer);
ObjectSelectionGizmos.instance.mirrorGizmoSettings.buildUI(mirrorGizmoSettingsSection.contentContainer);
UI.createUISectionRowSeparator(mirrorGizmoSettingsSection.contentContainer);
UI.createUISectionRowSeparator(contentContainer, uiSectionRowSeparator_TransformTools);
modularSnapSettingsSection.build("Modular Snap", TexturePool.instance.modularSnapSpawn, true, contentContainer);
ObjectSelection.instance.modularSnapSettings.buildUI(modularSnapSettingsSection.contentContainer);
UI.createUISectionRowSeparator(contentContainer, uiSectionRowSeparator_TransformTools);
surfaceSnapSettingsSection.build("Surface Snap", TexturePool.instance.objectSurfaceSnap, true, contentContainer);
ObjectSelection.instance.surfaceSnapSettings.buildUI(surfaceSnapSettingsSection.contentContainer);
UI.createUISectionRowSeparator(contentContainer, uiSectionRowSeparator_TransformTools);
projectionSettingsSection.build("Projection", TexturePool.instance.projection, true, contentContainer);
ObjectSelection.instance.projectionSettings.buildUI(projectionSettingsSection.contentContainer);
VisualElement buttonsContainer = new VisualElement();
buttonsContainer.style.flexDirection = FlexDirection.Row;
projectionSettingsSection.contentContainer.Add(buttonsContainer);
_projectOnGridBtn = new Button();
_projectOnGridBtn.text = "Project on grid";
_projectOnGridBtn.style.width = UIValues.useDefaultsButtonWidth;
_projectOnGridBtn.clicked += () => { ObjectSelection.instance.projectOnGrid(PluginScene.instance.grid); };
buttonsContainer.Add(_projectOnGridBtn);
_projectOnObjectBtn = new Button();
_projectOnObjectBtn.text = "Project on object";
_projectOnObjectBtn.style.width = 110.0f;
_projectOnObjectBtn.style.marginLeft = UIValues.actionButtonLeftMargin;
_projectOnObjectBtn.clicked += () => { ObjectSelection.instance.beginTransformSession(ObjectTransformSessionType.Projection); };
buttonsContainer.Add(_projectOnObjectBtn);
UI.createUISectionRowSeparator(contentContainer, uiSectionRowSeparator_TransformTools);
vertexSnapSettingsSection.build("Vertex Snap", TexturePool.instance.vertexSnap, true, contentContainer);
ObjectSelection.instance.vertexSnapSettings.buildUI(vertexSnapSettingsSection.contentContainer);
UI.createUISectionRowSeparator(contentContainer, uiSectionRowSeparator_TransformTools);
boxSnapSettingsSection.build("Box Snap", TexturePool.instance.boxSnap, true, contentContainer);
ObjectSelection.instance.boxSnapSettings.buildUI(boxSnapSettingsSection.contentContainer);
UI.createUISectionRowSeparator(contentContainer, uiSectionRowSeparator_Misc);
selectionGrowSettingsSection.build("Selection Grow", TexturePool.instance.selectionGrow, true, contentContainer);
ObjectSelection.instance.growSettings.buildUI(selectionGrowSettingsSection.contentContainer);
var growBtn = new Button();
selectionGrowSettingsSection.contentContainer.Add(growBtn);
growBtn.text = "Grow";
growBtn.style.width = UIValues.useDefaultsButtonWidth;
growBtn.tooltip = "Grow selection" + ShortcutProfileDb.instance.activeProfile.getShortcutUITooltip(ObjectSelectionShortcutNames.grow);
growBtn.clicked += () =>
{
ObjectSelection.instance.grow();
};
updateVisibility();
}
private void refreshTooltips()
{
_projectOnGridBtn.tooltip = ShortcutProfileDb.instance.activeProfile.getShortcutUITooltip(ObjectSelectionShortcutNames.projectOnGrid, "Project selected objects on the scene grid.");
_projectOnObjectBtn.tooltip = ShortcutProfileDb.instance.activeProfile.getShortcutUITooltip(ObjectSelectionShortcutNames.projectOnObject, "Project selected objects on an object that you pick in the scene.");
}
private string getTransformUISectionTitle()
{
if (ObjectSelection.instance.numSelectedObjects == 1)
return "Transform (" + ObjectSelection.instance.numSelectedObjects + ") - " + ObjectSelection.instance.getSelectedObject(0).name;
else
return ObjectSelection.instance.numSelectedObjects != 0 ? "Transform (" + ObjectSelection.instance.numSelectedObjects + ")" : "Transform";
}
private void refreshGizmoSelectionButtons()
{
_moveGimzoBtn.tooltip = "Move" + ShortcutProfileDb.instance.activeProfile.getShortcutUITooltip(ObjectSelectionShortcutNames.moveGizmo);
_moveGimzoBtn.style.unityBackgroundImageTintColor = UIValues.inactiveButtonTintColor;
_rotationGizmoBtn.tooltip = "Rotate" + ShortcutProfileDb.instance.activeProfile.getShortcutUITooltip(ObjectSelectionShortcutNames.rotationGizmo);
_rotationGizmoBtn.style.unityBackgroundImageTintColor = UIValues.inactiveButtonTintColor;
_scaleGizmoBtn.tooltip = "Scale" + ShortcutProfileDb.instance.activeProfile.getShortcutUITooltip(ObjectSelectionShortcutNames.scaleGizmo);
_scaleGizmoBtn.style.unityBackgroundImageTintColor = UIValues.inactiveButtonTintColor;
_universalGizmoBtn.tooltip = "Move/Rotate/Scale" + ShortcutProfileDb.instance.activeProfile.getShortcutUITooltip(ObjectSelectionShortcutNames.universalGizmo);
_universalGizmoBtn.style.unityBackgroundImageTintColor = UIValues.inactiveButtonTintColor;
_extrudeGizmoBtn.tooltip = "Extrude" + ShortcutProfileDb.instance.activeProfile.getShortcutUITooltip(ObjectSelectionShortcutNames.extrudeGizmo);
_extrudeGizmoBtn.style.unityBackgroundImageTintColor = UIValues.inactiveButtonTintColor;
_mirrorGizmoBtn.tooltip = "Mirror" + ShortcutProfileDb.instance.activeProfile.getShortcutUITooltip(GlobalShortcutNames.mirrorGizmo_Toggle);
_mirrorGizmoBtn.style.unityBackgroundImageTintColor = UIValues.inactiveButtonTintColor;
var selectionGizmos = ObjectSelectionGizmos.instance;
if (selectionGizmos.isGizmoEnabled(ObjectSelectionGizmoId.Move)) _moveGimzoBtn.style.unityBackgroundImageTintColor = UIValues.activeButtonColor;
if (selectionGizmos.isGizmoEnabled(ObjectSelectionGizmoId.Rotate)) _rotationGizmoBtn.style.unityBackgroundImageTintColor = UIValues.activeButtonColor;
if (selectionGizmos.isGizmoEnabled(ObjectSelectionGizmoId.Scale)) _scaleGizmoBtn.style.unityBackgroundImageTintColor = UIValues.activeButtonColor;
if (selectionGizmos.isGizmoEnabled(ObjectSelectionGizmoId.Universal)) _universalGizmoBtn.style.unityBackgroundImageTintColor = UIValues.activeButtonColor;
if (selectionGizmos.isGizmoEnabled(ObjectSelectionGizmoId.Extrude)) _extrudeGizmoBtn.style.unityBackgroundImageTintColor = UIValues.activeButtonColor;
if (selectionGizmos.isGizmoEnabled(ObjectSelectionGizmoId.Mirror)) _mirrorGizmoBtn.style.unityBackgroundImageTintColor = UIValues.activeButtonColor;
}
private void refreshGizmoPivotButton()
{
if (ObjectSelectionGizmos.instance.transformPivot == ObjectGizmoTransformPivot.Center)
{
_gizmoPivotBtn.tooltip = "Center Pivot\r\n\r\nThe gizmo's position in placed in the center of the object selection.";
_gizmoPivotBtn.style.backgroundImage = TexturePool.instance.gizmoCenterPivot;
}
else
{
_gizmoPivotBtn.tooltip = "Mesh Pivot\r\n\r\nThe gizmo's position is defined by the object's mesh pivot.";
_gizmoPivotBtn.style.backgroundImage = TexturePool.instance.gizmoMeshPivot;
}
}
private void refreshGizmoTransformSpaceButton()
{
if (ObjectSelectionGizmos.instance.transformSpace == ObjectGizmoTransformSpace.Global)
{
_gizmoTransformSpaceBtn.tooltip = "Global\r\n\r\nThe gizmo axes are aligned to the global coordinate system.";
_gizmoTransformSpaceBtn.style.backgroundImage = TexturePool.instance.gizmoGlobalTransformSpace;
}
else
{
_gizmoTransformSpaceBtn.tooltip = "Local\r\n\r\nThe gizmo inherits the rotation of the object.";
_gizmoTransformSpaceBtn.style.backgroundImage = TexturePool.instance.gizmoLocalTransformSpace;
}
}
private void refreshObjectSelectShapeButtons()
{
_selectionRectBtn.tooltip = "Selection Rectangle" + ShortcutProfileDb.instance.activeProfile.getShortcutUITooltip(ObjectSelectionShortcutNames.selectionRect, "Multi-object selection is performed using a selection rectangle.");
_selectionRectBtn.style.unityBackgroundImageTintColor = UIValues.inactiveButtonTintColor;
_selectionSegmentsBtn.tooltip = "Selection Segments" + ShortcutProfileDb.instance.activeProfile.getShortcutUITooltip(ObjectSelectionShortcutNames.selectionSegments, "Multi-object selection is performed using a chain of segments.");
_selectionSegmentsBtn.style.unityBackgroundImageTintColor = UIValues.inactiveButtonTintColor;
_selectionBoxBtn.tooltip = "Selection Box" + ShortcutProfileDb.instance.activeProfile.getShortcutUITooltip(ObjectSelectionShortcutNames.selectionBox, "Multi-object selection is performed using a selection box.");
_selectionBoxBtn.style.unityBackgroundImageTintColor = UIValues.inactiveButtonTintColor;
if (ObjectSelection.instance.selectionShapeType == ObjectSelectionShape.Type.Rect) _selectionRectBtn.style.unityBackgroundImageTintColor = UIValues.activeButtonColor;
else if (ObjectSelection.instance.selectionShapeType == ObjectSelectionShape.Type.Segments) _selectionSegmentsBtn.style.unityBackgroundImageTintColor = UIValues.activeButtonColor;
else if (ObjectSelection.instance.selectionShapeType == ObjectSelectionShape.Type.Box) _selectionBoxBtn.style.unityBackgroundImageTintColor = UIValues.activeButtonColor;
}
private void refreshViewSelectionButtons()
{
if (_activeViewId == ViewId.Settings)
{
_settingsBtn.style.backgroundColor = UIValues.activeButtonColor;
_transformToolsBtn.style.backgroundColor = UIValues.inactiveButtonColor;
_miscBtn.style.backgroundColor = UIValues.inactiveButtonColor;
}
else
if (_activeViewId == ViewId.TransformTools)
{
_settingsBtn.style.backgroundColor = UIValues.inactiveButtonColor;
_transformToolsBtn.style.backgroundColor = UIValues.activeButtonColor;
_miscBtn.style.backgroundColor = UIValues.inactiveButtonColor;
}
else
if (_activeViewId == ViewId.Misc)
{
_settingsBtn.style.backgroundColor = UIValues.inactiveButtonColor;
_transformToolsBtn.style.backgroundColor = UIValues.inactiveButtonColor;
_miscBtn.style.backgroundColor = UIValues.activeButtonColor;
}
}
private void updateVisibility()
{
bool visible = _activeViewId == ViewId.Settings;
contentContainer.setChildrenDisplayVisible(uiSectionRowSeparator_Settings, visible);
selectionSettingsSection.setVisible(visible);
extrudeGizmoSettingsSection.setVisible(visible);
mirrorGizmoSettingsSection.setVisible(visible);
visible = _activeViewId == ViewId.TransformTools;
contentContainer.setChildrenDisplayVisible(uiSectionRowSeparator_TransformTools, visible);
modularSnapSettingsSection.setVisible(visible);
surfaceSnapSettingsSection.setVisible(visible);
projectionSettingsSection.setVisible(visible);
vertexSnapSettingsSection.setVisible(visible);
boxSnapSettingsSection.setVisible(visible);
visible = _activeViewId == ViewId.Misc;
contentContainer.setChildrenDisplayVisible(uiSectionRowSeparator_Misc, visible);
selectionGrowSettingsSection.setVisible(visible);
}
protected override void onDestroy()
{
ScriptableObjectEx.destroyImmediate(_transformSection);
ScriptableObjectEx.destroyImmediate(_transformUI);
ScriptableObjectEx.destroyImmediate(_selectionSettingsSection);
ScriptableObjectEx.destroyImmediate(_extrudeGizmoSettingsSection);
ScriptableObjectEx.destroyImmediate(_mirrorGizmoSettingsSection);
ScriptableObjectEx.destroyImmediate(_modularSnapSettingsSection);
ScriptableObjectEx.destroyImmediate(_surfaceSnapSettingsSection);
ScriptableObjectEx.destroyImmediate(_projectionSettingsSection);
ScriptableObjectEx.destroyImmediate(_vertexSnapSettingsSection);
ScriptableObjectEx.destroyImmediate(_boxSnapSettingsSection);
ScriptableObjectEx.destroyImmediate(_selectionGrowSettingsSection);
}
}
}
#endif