您当前的位置: 首页 >  unity

CoderZ1010

暂无认证

  • 2浏览

    0关注

    168博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

五、Unity编辑器开发之GUIStyle

CoderZ1010 发布时间:2021-05-13 20:08:26 ,浏览量:2

在编辑器开发中会大量用到GUIStyle,为了能够精确的实现想要的样式,将所有的样式列在一个窗口中进行预览,如下:

在窗口顶部的Search输入框中输入样式名称的关键字可进行筛选,

点击样式左侧的拷贝按钮可将样式名称进行复制。

下面为代码,需要放在Editor文件夹中

using UnityEngine;
using UnityEditor;

namespace SK.Framework
{
    public sealed class GUIStyle : EditorWindow
    {
        [MenuItem("SKFramework/Editor/GUI/GUI Style")]
        private static void OpenGUIStyle()
        {
            GetWindow().Show();
        }

        private UnityEngine.GUIStyle[] styles;
        private Vector2 scroll = Vector2.zero;
        private string searchContent = "";

        private void OnGUI()
        {
            if (styles == null)
            {
                styles = GUI.skin.customStyles;
            }
            GUILayout.BeginHorizontal("Toolbar");
            {
                GUILayout.Label("Search:", GUILayout.Width(50));
                searchContent = GUILayout.TextField(searchContent, "SearchTextField");
            }
            GUILayout.EndHorizontal();

            scroll = GUILayout.BeginScrollView(scroll);
            {
                for (int i = 0; i < styles.Length; i++)
                {
                    if (styles[i].name.ToLower().Contains(searchContent.ToLower()))
                    {
                        GUILayout.BeginHorizontal("Badge");
                        {
                            if (GUILayout.Button("拷贝", "LargeButton", GUILayout.Width(40f)))
                            {
                                EditorGUIUtility.systemCopyBuffer = styles[i].name;
                                Debug.Log($"拷贝名称: {styles[i].name}");
                            }
                            EditorGUILayout.SelectableLabel(styles[i].name, GUILayout.Width((position.width - 40f) * 0.3f));
                            GUILayout.Button(string.Empty, styles[i], GUILayout.Width((position.width - 40f) * 0.6f));
                        }
                        GUILayout.EndHorizontal();
                    }
                }
            }
            GUILayout.EndScrollView();
        }
    }
}
关注
打赏
1653184800
查看更多评论
立即登录/注册

微信扫码登录

0.0540s