Unity(十九):获取编辑器内置样式和内置图标
内置样式
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(十九):获取编辑器内置样式和内置图标相关推荐
- 【CSS】CSS 层叠样式表 ① ( 简介 | CSS 引入方式 - 内联样式 | 内联样式语法 | 内联样式缺点 )
文章目录 一.CSS 层叠样式表 二.CSS 引入方式 - 内联样式 1.内联样式语法 2.内联样式缺点 3.内联样式代码示例 ① 核心代码示例 ② 完整代码示例 ③ 执行结果 一.CSS 层叠样式表 ...
- vue.js -- 获取dom元素的样式(非行内样式)
在vue中获取dom元素的样式: this.$refs.menuList.style.top; 这种获取方式是只能获取到元素的行内样式的. this.$refs.menuList.getBoundin ...
- 五十九、Vue中的样式绑定
@Author:Runsen @Date:2020/10/16 大四是一个焦虑的时期.烦恼有时候是具体问题带来的压力,有时候却是无端的.莫名其妙的,有时候还极易受到外界的影响,别人一句话就会激起内心难 ...
- html 字体形状,二十款漂亮的CSS字体样式
样式一:body { margin: 0; padding: 0; line-height: 1.5em; font-family: 'Times New Roman', Times, serif; ...
- 第 10 节 操作内联样式
第10节 操作内联样式 操作内联样式 操作内联样式 1.通过JS修改元素的样式: 1)语法:元素.style.样式名 = 样式值 注意: 如果CSS的样式名中含有 -,这种名称在JS中是不合法的,比如 ...
- js学习笔记82——操作内联样式
js学习笔记82--操作内联样式 通过js修改元素的样式 查参考手册 内联样式 读取元素的样式 看如下代码 <!DOCTYPE html> <html lang="en&q ...
- 【CSS】CSS 层叠样式表 ② ( CSS 引入方式 - 内嵌样式 )
文章目录 一.CSS 引入方式 - 内嵌样式 1.内嵌样式语法 2.内嵌样式示例 3.内嵌样式完整代码示例 4.内嵌样式运行效果 一.CSS 引入方式 - 内嵌样式 1.内嵌样式语法 CSS 内嵌样式 ...
- [HTML入门]使用内联样式写CSS
什么是HTML? HTML代表超文本标记语言,对于许多初学者来说可能是一个令人困惑的术语.HTML是一种基础技术,常与CSS,JavaScript一起被众多网站用于设计网页,网页应用程序以及移动应用程 ...
- c ++内联函数_内联MHTML +数据URI
c ++内联函数 MHTML and Data URIs in the same CSS file is totally doable and gives us nice support for IE ...
- Unity Editor 编辑器扩展一 编辑器特殊文件夹及内置资源读取
目录 目录 编辑器特殊文件夹及内置资源读取 编辑器相关文件夹 读取内置资源包 代码 Test1_1cs 代码Editor1_1cs 这个要放到Editor文件夹内 编辑器特殊文件夹及内置资源读取 使用 ...
最新文章
- 编写安全的代码(ACL使用方法)
- html柳树动画,3D教程-柳树生长动画
- MATLAB保存数据为dat格式,[转载] Matlab中的数据以.txt或.dat格式保存
- 转载 Assert断言知识
- 超级计算机TOP500、green500、graph500最新排名(2012.11)
- python读取dat文件代码-基于python批量处理dat文件及科学计算方法详解
- 【科研必备】常用数学符号大全
- Eview操作步骤——数据导入及数据建模
- tableau地图城市数据_Tableau-地图
- android手机管理器在哪里打开,小米手机任务管理器在哪?怎么打开?
- 【C语言编程5】复数计算器
- JS super的使用方法
- [小样本图像分割]PANet: Few-Shot Image Semantic Segmentation with Prototype Alignment
- matlab实现GPC隐写算法,基于LSB信息隐藏算法的MATLAB实现
- 英语天天读】Cultivating a Hobby
- CSS3 ime-mode 属性
- 《Web安全之机器学习入门》笔记:第十章 10.3 K-Means算法检测DGA域名
- oracle云简介,Oracle 商务智能云服务器功能简介
- 一起看 I/O | Android 更新一览
- centos6操作系统升级到centos7
热门文章
- MATLAB(R2021a)软件下载和安装教程
- 【问链财经-区块链基础知识系列】 第十六课 区块链将变革教育产业,未来有六大应用方向
- linux运行bak,linux 备份学习
- JAVA程序设计教程-第2版-雍俊海 介绍以及 PDF+源代码+ppt 下载链接
- sql服务器密码如何显示,如何查看sql数据库密码
- IPD产品开发流程详解
- Matter 协议,IoT 智能家居混乱时代的终结者
- IIS6同一IP部署多域名证书(部署指南)
- 《上海交通大学饮水思源paper(论文)板实用手册(第二版)》出炉
- SAS详细的下载与安装流程