| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #if UNITY_2019_4_OR_NEWER
- using UnityEditor;
- using UnityEngine;
- using UnityEditor.UIElements;
- using UnityEngine.UIElements;
- namespace YooAsset.Editor
- {
- public static class UIElementsTools
- {
- /// <summary>
- /// 设置元素显隐
- /// </summary>
- public static void SetElementVisible(VisualElement element, bool visible)
- {
- if (element == null)
- return;
- element.style.display = visible ? DisplayStyle.Flex : DisplayStyle.None;
- element.style.visibility = visible ? Visibility.Visible : Visibility.Hidden;
- }
- /// <summary>
- /// 设置元素的文本最小宽度
- /// </summary>
- public static void SetElementLabelMinWidth(VisualElement element, int minWidth)
- {
- var label = element.Q<Label>();
- if (label != null)
- {
- // 设置最小宽度
- label.style.minWidth = minWidth;
- }
- }
- /// <summary>
- /// 设置按钮图标
- /// </summary>
- public static void SetToolbarButtonIcon(ToolbarButton element, string iconName)
- {
- var image = EditorGUIUtility.IconContent(iconName).image as Texture2D;
- element.style.backgroundImage = image;
- element.text = string.Empty;
- }
- /// <summary>
- /// 竖版分屏
- /// </summary>
- public static void SplitVerticalPanel(VisualElement root, VisualElement panelA, VisualElement panelB)
- {
- #if UNITY_2020_3_OR_NEWER
- root.Remove(panelA);
- root.Remove(panelB);
- var spliteView = new TwoPaneSplitView();
- spliteView.fixedPaneInitialDimension = 300;
- spliteView.orientation = TwoPaneSplitViewOrientation.Vertical;
- spliteView.contentContainer.Add(panelA);
- spliteView.contentContainer.Add(panelB);
- root.Add(spliteView);
- #endif
- }
- }
- }
- #endif
|