通过GUIStyle,可以自定义Unity编辑器的样式。

GUIStyle可以new一个全新的实例,这样,需要自己处理所有自己需要的效果。

GUIStyle还可以基于已经存在的实例new一个新的实例,这样,只需对原有的效果中不符合自己需求的进行修改。

就像这样:

GUIStyle textStyle = new GUIStyle("HeaderLabel");
textStyle.fontSize = 20;

一个基于 HeaderLabel  的字体显示风格,然后把字号放大成20;

然后就可以用这个风格来编制自己的编辑器,如下,文本“示例”二字会按上面定义的风格显示出来。

GUILayout.Label("示例", textStyle, GUILayout.Width(300));

Unity编辑器中,按钮,文本,开关等等大部分Layout都可以传入GUIStyle参数,就不多说了。

那么,到底怎么获得这些系统内置的样式的?

答案是:GUI.skin.customStyles !遍历这个数组,里面有大量的系统样式,稍作修改,基本就能有不错的效果啦。

下面,附上一个预览这些样式的方法。

首先,给出AssetStore上的资源地址:https://assetstore.unity.com/packages/tools/gui/editor-style-viewer-3282

源代码是js写的,不太习惯。我稍稍修改了一下,改成C#的了。

 1 using System.Collections;
 2 using System.Collections.Generic;
 3 using UnityEngine;
 4 using UnityEditor;
 5
 6 public class GUIStyleViewer : EditorWindow {
 7
 8     Vector2 scrollPosition = new Vector2(0,0);
 9     string search = "";
10     GUIStyle textStyle;
11
12
13     private static GUIStyleViewer window;
14     [MenuItem("Tools/GUIStyleViewer", false, 100)]
15     private static void OpenStyleViewer()
16     {
17         window = GetWindow<GUIStyleViewer>(false, "查看内置GUIStyle");
18     }
19
20     void OnGUI()
21     {
22         if (textStyle == null)
23         {
24             textStyle = new GUIStyle("HeaderLabel");
25             textStyle.fontSize = 20;
26         }
27
28         GUILayout.BeginHorizontal("HelpBox");
29         GUILayout.Label("点击示例,可以将其名字复制下来", textStyle);
30         GUILayout.FlexibleSpace();
31         GUILayout.Label("Search:");
32         search = EditorGUILayout.TextField(search);
33         GUILayout.EndHorizontal();
34
35         GUILayout.BeginHorizontal("PopupCurveSwatchBackground");
36         GUILayout.Label("示例", textStyle, GUILayout.Width(300));
37         GUILayout.Label("名字", textStyle, GUILayout.Width(300));
38         GUILayout.EndHorizontal();
39
40
41         scrollPosition = GUILayout.BeginScrollView(scrollPosition);
42
43         foreach (var style in GUI.skin.customStyles)
44         {
45             if (style.name.ToLower().Contains(search.ToLower()))
46             {
47                 GUILayout.Space(15);
48                 GUILayout.BeginHorizontal("PopupCurveSwatchBackground");
49                 if (GUILayout.Button(style.name, style, GUILayout.Width(300)))
50                 {
51                     EditorGUIUtility.systemCopyBuffer = style.name ;
52                     Debug.LogError(style.name);
53                 }
54                 EditorGUILayout.SelectableLabel(style.name, GUILayout.Width(300));
55                 GUILayout.EndHorizontal();
56             }
57         }
58
59         GUILayout.EndScrollView();
60     }
61 }

系统GUIStyle预览

效果如下:

转载于:https://www.cnblogs.com/yougoo/p/10073086.html

Unity编辑器:自定义编辑器样式——GUIStyle相关推荐

  1. html编辑器不支持自定义样式,百度编辑器自定义按钮样式问题(写在cssRules不起做用)?...

    UE.registerUI('dialog',function(editor,uiName){ //创建dialog var dialog = new UE.ui.Dialog({ //指定弹出层中页 ...

  2. 百度编辑器(UEditor)自定义内容样式

    笔者在做微信编辑器的时候遇到这样的问题,当固定编辑器窗口的情况下图片太大会出现横向滚动调条,但是通过外部css并不能解决此问题,所以还需从编辑器本身入手,那么接下来就随着本文来看如何自定义内容样式. ...

  3. Unity 自定义编辑器窗口的使用

    Unity 自定义编辑器窗口功能强大,可以实现所有希望实现的功能.我在近期的项目中仿照魔兽争霸3开发了一套简单的游戏单位功能组件,其中包括单位数据.移动方式.动画播放.武器系统等等.如果用传统的Ins ...

  4. vscode 自定义编辑器样式 css修改

    vscode 自定义编辑器样式 CSS修改 看看别人插件 background background-cover 自己修改样式 1.打开vscode 配置文件 setting.json 2.修改上面提 ...

  5. markdown编辑器中去除图片水印以及自定义水印样式

    目录 内容介绍 一.图片链接 1.默认图片 2.参数 3.自定义 二.去除水印 1.删除参数 2.设置字号 内容介绍   csdn的markdown编辑中经常会插入图片,用做代码截图.效果展示等,默认 ...

  6. 深入了解IMGUI和编辑器自定义

    The new Unity UI system has now been out for over a year. So I thought I'd do a blog post about the ...

  7. ueditor 编辑html文件名,UEditor编辑器自定义上传图片或文件路径的修改方法,ueditor修改方法...

    UEditor编辑器自定义上传图片或文件路径的修改方法,ueditor修改方法 使用ueditor编辑器,附件默认在ueditor/php/upload/,  我的附件地址是网站根目录下/data/u ...

  8. Unity引擎及编辑器C#源代码发布

    3月23日我们在GitHub上发布了Unity引擎和编辑器的C#源代码,仅供Unity学习参考使用. 为何如此决定 为了了解或改进自己的Unity项目,一直以来有用户对Unity .NET程序集反汇编 ...

  9. unity中脚本编辑器UnIDE

    引言 unity默认脚本编辑器是MonoDevelop,随着unity4.3面世,MonoDevelop (4.0.1)版本也随之而来,更新为界面更改和bug自动修复功能等,具体还未使用. 点击uni ...

  10. Spring -- 入门,装备集合,自动装配,分散装配,自定义编辑器

    1. 概要 struts2:web hibernate:持久化 spring:业务层.管理bean的,容器.List Map Set.体验spring:1.创建java项目.2.引入spring的类库 ...

最新文章

  1. 这才是数据挖掘领域常用的机器学习算法!
  2. 键值存储之外,Redis还有这些用法
  3. 直接从JBoss AS 7组件使用JGroups
  4. 分布式锁和mysql事物扣库存_浅谈库存扣减和锁
  5. 2020品牌情商指数报告
  6. 霸气!任正非:即使美企断供 也无法威胁华为生存
  7. [No0000FD]C# 正则表达式
  8. LInux下CAN滤波时间,linux下can调试工具canutils安装过程记录
  9. Fiddler+夜神模拟器+xposed+justTrustMe手机抖音抓包
  10. 反向题在测试问卷信效度_问卷一定要做信度效度检验吗?如果含有多选题怎样做信度分析,请各位高手帮帮忙。...
  11. Life:歌曲学习之教一个不会唱歌的人学会唱出《情非得已》、《海阔天空》、《红日》、《老男孩》等歌曲
  12. 杰理之低延时无线麦功能支持以下三种组合配置【篇】
  13. 2021年安全员-A证(江西省)报名考试及安全员-A证(江西省)考试平台
  14. 微信公众号运营数据分析(二):内容分析讲解
  15. XJOI 7820 TLE
  16. 面试高级算法梳理笔记
  17. 数据分析Power BI案例:餐饮数据分析与可视化
  18. 如何通过6个简单步骤让百度收录你的网站
  19. 最新nod32 for windows2003
  20. 【C语言入门】已知10个学生的5门课程的成绩,将其存入一个二维数组,求每个学生的总成绩和平均成绩。

热门文章

  1. cxf 服务器响应超时时间,CXF日志响应时间
  2. oracle事件跟踪器使用,Oracle 10046跟踪事件操作步骤
  3. solr获取同义词 java_如何在使用缩写及其全名搜索时使solr同义词获取相同的结果(相同的数字和顺序)...
  4. 加速器instagram_“类似Instagram过滤器”标记肿瘤图像中的分子细节
  5. 与Maggy统一单主机和分布式机器学习
  6. linux怎么重载mysql配置命令_【Linux命令】数据库mysql配置命令
  7. 你分得清楚Maven的聚合和继承吗?
  8. Spring源码-context:component-scan的解析过程
  9. 定义一个扁平的按钮样式
  10. 最简单的TCP网络封包解包(补充)-序列化