unity GuiSkin GuiStyle

一,unity 内置图标展示

using UnityEngine;
using UnityEditor;

public  class EditorStyleViewer : EditorWindow
{
     private Vector2 scrollPosition = Vector2.zero;
     private  string search =  string.Empty;

    [MenuItem( "Tools/GUI样式查看器")]
     public  static  void Init()
    {
        EditorWindow.GetWindow( typeof(EditorStyleViewer));
    }

     void OnGUI()
    {
        GUILayout.BeginHorizontal( "HelpBox");
        GUILayout.Label( "单击示例将复制其名到剪贴板",  "label");
        GUILayout.FlexibleSpace();
        GUILayout.Label( "查找:");
        search = EditorGUILayout.TextField(search);
        GUILayout.EndHorizontal();

        scrollPosition = GUILayout.BeginScrollView(scrollPosition);

         foreach (GUIStyle style  in GUI.skin)
        {
             if (style.name.ToLower().Contains(search.ToLower()))
            {
                GUILayout.BeginHorizontal( "PopupCurveSwatchBackground");
                GUILayout.Space( 7);
                 if (GUILayout.Button(style.name, style))
                {
                    EditorGUIUtility.systemCopyBuffer =  "\"" + style.name +  "\"";
                }
                GUILayout.FlexibleSpace();
                EditorGUILayout.SelectableLabel( "\"" + style.name +  "\"");
                GUILayout.EndHorizontal();
                GUILayout.Space( 11);
            }
        }

        GUILayout.EndScrollView();
    }
}

二 自定义图标

 

 private void LoadGuiStyles()
 {
       string path = GetMonoScriptFilePath(this);

       path = path.Split(new string[] { "Assets" }, StringSplitOptions.None)[1]
                       .Split(new string[] { "Tayx"   }, StringSplitOptions.None)[0];

        m_logoTexture = AssetDatabase.LoadAssetAtPath<Texture2D>
        (
            "Assets" +
             path +
             "Tayx/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_" +
             (EditorGUIUtility.isProSkin ? "White.png" : "Dark.png")
         );

         m_skin = AssetDatabase.LoadAssetAtPath<GUISkin>
         (
              "Assets" +
               path +
               "Tayx/Graphy - Ultimate Stats Monitor/GUI/Graphy.guiskin"
          );

          if (m_skin != null)
          {
              m_headerStyle1 = m_skin.GetStyle("Header1");
              m_headerStyle2 = m_skin.GetStyle("Header2");

              SetGuiStyleFontColor
              (
                  guiStyle: m_headerStyle2,
                  color: EditorGUIUtility.isProSkin ? Color.white : Color.black
              );
          }
          else
          {
              m_headerStyle1 = EditorStyles.boldLabel;
              m_headerStyle2 = EditorStyles.boldLabel;
          }
 }


--------------------------------------------------------

 GUISkin skin = AssetDatabase.LoadAssetAtPath<GUISkin>
 (
      "Assets/_Game/myTest.guiskin"
 );

 if (GUILayout.Button("保存", skin.GetStyle("test"), GUILayout.Width(60)))
 {
 }
          

结果如下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值