Unity_EditorWindow(Skin界面展示)

Unity_EditorWindow(Skin界面展示)

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

namespace Miss
{
    public class EditorStyleViewer : EditorWindow
    {
        static EditorStyleViewer window = null;

        [MenuItem("Miss/EditorStyleViewer")]
        public static void MyWindow()
        {
            window = GetWindow<EditorStyleViewer>();
            window.Show();
        }

        //搜索内容
        private string m_SearchStr = string.Empty;

        //滑动坐标
        private Vector2 m_ScrollerPos = Vector2.zero;

        private void OnGUI()
        {
            //上层栏
            EditorGUILayout.BeginHorizontal("box");
            {
                GUILayout.Label(new GUIContent("单击左侧栏名称即可复制"), "Badge");
                GUILayout.Space(20);
                GUILayout.Label(new GUIContent("右侧栏名称可选择性复制"), "Badge");
                GUILayout.FlexibleSpace();
                GUILayout.Label(new GUIContent("搜索:"), "Badge");
                m_SearchStr = EditorGUILayout.TextField(m_SearchStr, GUILayout.Width(100));
            }
            EditorGUILayout.EndHorizontal();
            //设置间隔
            GUILayout.Space(20);
            //下方滑动区
            m_ScrollerPos = EditorGUILayout.BeginScrollView(m_ScrollerPos, "AnimItemBackground");
            {
                foreach (GUIStyle style in GUI.skin)
                {
                    //匹配搜索内容
                    if (style.name.ToLower().Contains(m_SearchStr))
                    {
                        EditorGUILayout.BeginHorizontal();
                        {
                            if (GUILayout.Button(style.name, style))
                            {
                                //复制内容
                                EditorGUIUtility.systemCopyBuffer = style.name;
                                ShowNotification(new GUIContent($"已复制到粘贴板: {style.name}"));
                            }
                            GUILayout.FlexibleSpace();
                            //显示一个可选中内容的文本
                            EditorGUILayout.SelectableLabel(style.name);
                        }
                        EditorGUILayout.EndHorizontal();
                        //设置每行间距
                        GUILayout.Space(10);
                    }
                }
            }
            EditorGUILayout.EndScrollView();
        }
    }
}

界面效果展示:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值