找回密码
 立即注册
查看: 651|回复: 0

Unity 系统图标

[复制链接]
发表于 2021-4-8 14:25 | 显示全部楼层 |阅读模式
太久没更新了。感觉对不起大家。跟大家说一声抱歉。




先来一贴,之前写过一篇Unity系统图标,但是发现使用起来还是有些不好用。所以今天重新写了一个。补了两个小东西。
01获得系统图标的方法

List<UnityEngine.Object> m_Icons;m_Icons = new List<UnityEngine.Object>(Resources.FindObjectsOfTypeAll(typeof(Texture)));02剪切板

TextEditor m_te = new TextEditor();m_te.text = icon.name;m_te.SelectAll();m_te.Copy();03编辑器完整代码

/******************************************************************** Copyright (C) 2020 STUPID DOG STUDIO  类    名:UnityIconWindow.cs 创建时间:2021-04-01 17:51:52 作    者:Birth.Fat  描    述: 版    本:2.0*********************************************************************/using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;using System.Xml;using System.IO;public class UnityIconsWindow : EditorWindow{    GUIStyle m_textStyle;    GUIStyle m_saveBtnStyle;    GUIStyle m_iconNameStyle;    string m_search = "";    Vector2 m_scrollPosition = new Vector2(0, 0);    List<UnityEngine.Object> m_Icons;    TextEditor m_te = new TextEditor();        [MenuItem("Tools/UnityIcon")]    static void AddWindow()    {        Rect wr = new Rect(0, 0, 1600, 1000);        UnityIconsWindow window = (UnityIconsWindow)EditorWindow.GetWindowWithRect(typeof(UnityIconsWindow), wr, true, "Unity系统图标");        window.Show();    }    //------------------------------------------------------    void OnGUI()    {        SystemIconViewer();    }    //------------------------------------------------------    private void SystemIconViewer()    {        InitGUIStyle();                GUILayout.BeginHorizontal("HelpBox");        GUILayout.Label("结果如下:" + m_search, m_textStyle);        GUILayout.FlexibleSpace();        if (GUILayout.Button("SHIT!", m_saveBtnStyle, GUILayout.Width(80)))        {            InitIconList();        }        GUILayout.EndHorizontal();                m_scrollPosition = GUILayout.BeginScrollView(m_scrollPosition);        if (m_Icons != null)        {            for (int i = 0; i < m_Icons.Count; i++)            {                if (i % 15 == 0)                {                    GUILayout.BeginHorizontal("PopupCurveSwatchBackground");                    for (int j = 0; j < 15; j++)                    {                        var icon = m_Icons;                        GUILayout.BeginVertical();                        if (GUILayout.Button((Texture)icon, GUILayout.Width(100), GUILayout.Height(100)))                        {                            m_te.text = icon.name;                            m_te.SelectAll();                            m_te.Copy();                            this.ShowNotification(new GUIContent("Unity 体统不表:" + icon.name + "已经复制到剪切板!"));                        }                        GUILayout.Label(icon.name, m_iconNameStyle, GUILayout.Width(100));                        GUILayout.EndVertical();                        i++;                        if (i == m_Icons.Count)                            break;                    }                    GUILayout.EndHorizontal();                    GUILayout.Space(6);                }            }        }        GUILayout.EndScrollView();    }    //------------------------------------------------------    private void InitIconList()    {        if (m_Icons == null || m_Icons.Count == 0)        {            m_Icons = new List<UnityEngine.Object>(Resources.FindObjectsOfTypeAll(typeof(Texture)));            m_Icons.Sort((pA, pB) => System.String.Compare(pA.name, pB.name, System.StringComparison.OrdinalIgnoreCase));            m_search = m_Icons.Count.ToString(); // GUILayout.Label(m_search)        }    }    //------------------------------------------------------    private void InitGUIStyle()    {        if (m_textStyle == null)        {            m_textStyle = new GUIStyle("HeaderLabel");            m_textStyle.fontSize = 20;            //color = textStyle.normal.textColor ;        }        if (m_iconNameStyle == null)        {            m_iconNameStyle = new GUIStyle("WarningOverlay");            m_iconNameStyle.fontSize = 12;        }        if (m_saveBtnStyle == null)        {            m_saveBtnStyle = new GUIStyle("flow node 1");            m_saveBtnStyle.fontSize = 16;            m_saveBtnStyle.fixedHeight = 38;            m_saveBtnStyle.alignment = TextAnchor.MiddleCenter;            m_saveBtnStyle.fontStyle = m_textStyle.fontStyle;        }    }    //------------------------------------------------------    private void Reset()    {        if (m_Icons == null)            return;        if (m_Icons.Count > 0)            m_Icons.Clear();    }}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-20 22:41 , Processed in 0.088630 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表