内置样式

using System.Collections.Generic;
using System.Reflection;
using UnityEditor;
using UnityEngine;public class CustomEditor : EditorWindow
{private enum Status{style, icon}static Status status;#region EditorStyles 获取内部样式private static List<GUIStyle> GUIStyles;                // 存储GUIStyleprivate Vector2 stylesScrollPosition = Vector2.zero;    // 滚动位置[MenuItem("CustomTools/GetEditorStyles")]private static void GetEditorStyles(){status = Status.style;GUIStyles = new List<GUIStyle>();GetWindow<CustomEditor>("EditorStyles 获取编辑器用到的样式并附加到Label上");// 先反射获取 EditorStyles 下的所有样式,然后在窗口中依次绘制出来,BindingFlags 表示反射属性的类型// BindingFlags.Static 与 BindingFlags.Instance 二者必须有一项或者都有BindingFlags bindingFlags = BindingFlags.Static | BindingFlags.Public;PropertyInfo[] propertyInfos = typeof(EditorStyles).GetProperties(bindingFlags);foreach (PropertyInfo propertyInfo in propertyInfos){GUIStyle gUIStyle = propertyInfo.GetValue(null, null) as GUIStyle;if (gUIStyle != null) GUIStyles.Add(gUIStyle);}}// 绘制样式void DrawStyle(){stylesScrollPosition = GUILayout.BeginScrollView(stylesScrollPosition);for (int i = 0; i < GUIStyles.Count; i++){// 将样式附加到Label上GUILayout.Label(GUIStyles[i].name, GUIStyles[i]);}GUILayout.EndScrollView();}#endregionvoid OnGUI(){switch (status){case Status.style: DrawStyle(); break;}}
}

内置图标

EditorGUIUtility.IconContent
从具有给定名称的 Unity 内置资源中获取 GUIContent
EditorGUIUtility.IconContent 用于为 GUI 元素创建 GUIContent。
只会加载图标.通常情况下
1. 第一个参数获取 Assets/Editor Default Resources/Icons 中的图标。只需要图标的名称,而不需要 png 扩展名。
2. 第二个参数为悬停工具提示提供文本。此字符串 需要以竖线“|”字符开头以将其标记为工具提示。
注意:目前无法悬停定位在工具提示上方。

using System.Collections.Generic;
using System.Reflection;
using UnityEditor;
using UnityEngine;public class CustomEditor : EditorWindow
{private enum Status{style, icon}static Status status;#region 获取内部图标#if false
从具有给定名称的 Unity 内置资源中获取 GUIContent
EditorGUIUtility.IconContent 用于为 GUI 元素创建 GUIContent。
只会加载图标.通常情况下第一个参数获取 Assets/Editor Default Resources/Icons 中的图标。只需要图标的名称,而不需要 png 扩展名。第二个参数为悬停工具提示提供文本。此字符串 需要以竖线“|”字符开头以将其标记为工具提示。
注意:目前无法悬停定位在工具提示上方。
#endifprivate static List<GUIContent> icons;[MenuItem("CustomTools/GetEditorIcons")]private static void GetEditorIcons(){status = Status.icon;icons = new List<GUIContent>();GetWindow<CustomEditor>("图标");Texture2D[] textures = Resources.FindObjectsOfTypeAll<Texture2D>();foreach (Texture2D texture in textures){GUIContent icon = EditorGUIUtility.IconContent(texture.name, $"|{texture.name}");if (icon != null && icon.image != null) icons.Add(icon);}}// 绘制图标void DrawIcon(){for (int i = 0; i < icons.Count; i += 35){GUILayout.BeginHorizontal();for (int j = 0; j < 35; j++){if(i + j < icons.Count)GUILayout.Button(icons[i + j], GUILayout.Width(25), GUILayout.Height(25));}GUILayout.EndHorizontal();}}#endregionvoid OnGUI(){switch (status){case Status.icon: DrawIcon(); break;}}
}

Unity(十九):获取编辑器内置样式和内置图标相关推荐

  1. 【CSS】CSS 层叠样式表 ① ( 简介 | CSS 引入方式 - 内联样式 | 内联样式语法 | 内联样式缺点 )

    文章目录 一.CSS 层叠样式表 二.CSS 引入方式 - 内联样式 1.内联样式语法 2.内联样式缺点 3.内联样式代码示例 ① 核心代码示例 ② 完整代码示例 ③ 执行结果 一.CSS 层叠样式表 ...

  2. vue.js -- 获取dom元素的样式(非行内样式)

    在vue中获取dom元素的样式: this.$refs.menuList.style.top; 这种获取方式是只能获取到元素的行内样式的. this.$refs.menuList.getBoundin ...

  3. 五十九、Vue中的样式绑定

    @Author:Runsen @Date:2020/10/16 大四是一个焦虑的时期.烦恼有时候是具体问题带来的压力,有时候却是无端的.莫名其妙的,有时候还极易受到外界的影响,别人一句话就会激起内心难 ...

  4. html 字体形状,二十款漂亮的CSS字体样式

    样式一:body { margin: 0; padding: 0; line-height: 1.5em; font-family: 'Times New Roman', Times, serif; ...

  5. 第 10 节 操作内联样式

    第10节 操作内联样式 操作内联样式 操作内联样式 1.通过JS修改元素的样式: 1)语法:元素.style.样式名 = 样式值 注意: 如果CSS的样式名中含有 -,这种名称在JS中是不合法的,比如 ...

  6. js学习笔记82——操作内联样式

    js学习笔记82--操作内联样式 通过js修改元素的样式 查参考手册 内联样式 读取元素的样式 看如下代码 <!DOCTYPE html> <html lang="en&q ...

  7. 【CSS】CSS 层叠样式表 ② ( CSS 引入方式 - 内嵌样式 )

    文章目录 一.CSS 引入方式 - 内嵌样式 1.内嵌样式语法 2.内嵌样式示例 3.内嵌样式完整代码示例 4.内嵌样式运行效果 一.CSS 引入方式 - 内嵌样式 1.内嵌样式语法 CSS 内嵌样式 ...

  8. [HTML入门]使用内联样式写CSS

    什么是HTML? HTML代表超文本标记语言,对于许多初学者来说可能是一个令人困惑的术语.HTML是一种基础技术,常与CSS,JavaScript一起被众多网站用于设计网页,网页应用程序以及移动应用程 ...

  9. c ++内联函数_内联MHTML +数据URI

    c ++内联函数 MHTML and Data URIs in the same CSS file is totally doable and gives us nice support for IE ...

  10. Unity Editor 编辑器扩展一 编辑器特殊文件夹及内置资源读取

    目录 目录 编辑器特殊文件夹及内置资源读取 编辑器相关文件夹 读取内置资源包 代码 Test1_1cs 代码Editor1_1cs 这个要放到Editor文件夹内 编辑器特殊文件夹及内置资源读取 使用 ...

最新文章

  1. 编写安全的代码(ACL使用方法)
  2. html柳树动画,3D教程-柳树生长动画
  3. MATLAB保存数据为dat格式,[转载] Matlab中的数据以.txt或.dat格式保存
  4. 转载 Assert断言知识
  5. 超级计算机TOP500、green500、graph500最新排名(2012.11)
  6. python读取dat文件代码-基于python批量处理dat文件及科学计算方法详解
  7. 【科研必备】常用数学符号大全
  8. Eview操作步骤——数据导入及数据建模
  9. tableau地图城市数据_Tableau-地图
  10. android手机管理器在哪里打开,小米手机任务管理器在哪?怎么打开?
  11. 【C语言编程5】复数计算器
  12. JS super的使用方法
  13. [小样本图像分割]PANet: Few-Shot Image Semantic Segmentation with Prototype Alignment
  14. matlab实现GPC隐写算法,基于LSB信息隐藏算法的MATLAB实现
  15. 英语天天读】Cultivating a Hobby
  16. CSS3 ime-mode 属性
  17. 《Web安全之机器学习入门》笔记:第十章 10.3 K-Means算法检测DGA域名
  18. oracle云简介,Oracle 商务智能云服务器功能简介
  19. 一起看 I/O | Android 更新一览
  20. centos6操作系统升级到centos7

热门文章

  1. MATLAB(R2021a)软件下载和安装教程
  2. 【问链财经-区块链基础知识系列】 第十六课 区块链将变革教育产业,未来有六大应用方向
  3. linux运行bak,linux 备份学习
  4. JAVA程序设计教程-第2版-雍俊海 介绍以及 PDF+源代码+ppt 下载链接
  5. sql服务器密码如何显示,如何查看sql数据库密码
  6. IPD产品开发流程详解
  7. Matter 协议,IoT 智能家居混乱时代的终结者
  8. IIS6同一IP部署多域名证书(部署指南)
  9. 《上海交通大学饮水思源paper(论文)板实用手册(第二版)》出炉
  10. SAS详细的下载与安装流程