1. Foldout、HelpBox
折叠菜单,大家都知道,不具体解释了,直接代码。因为折叠菜单中必然是有内容才能看到效果,所以顺带把HelpBox(提示框)也说了。

[code]csharpcode:

using UnityEngine;
using System.Collections;
using UnityEditor; // 编辑器命名空间的引用 public class Editor2 : EditorWindow // 编辑器类
{
private bool foldout; // 声明折叠菜单的状态 [MenuItem("EditorDemo/CreateWindow")] // 在编辑器中添加一个菜单
static void CreateWindow() // 下面这个函数必须是***静态的***
{
// 在这里面创建窗口
EditorWindow.GetWindow(typeof(Editor2), false, "EditorWindow", true);
} void OnGUI()
{
foldout = EditorGUILayout.Foldout(foldout, "Foldout"); // 定义折叠菜单
if (foldout)
{
EditorGUILayout.HelpBox("HelpBox", MessageType.Error); // 显示一个提示框
}
}
}

 
折叠菜单的使用十分简单,一个状态值,一个标题名;要注意的是HelpBox中的MessageType,它有四种类型Error、Info、None、Warning。不同的消息类型,有不同的显示效果。
 
    
       
 
2. InspectorTitlebar

[code]csharpcode:

using UnityEngine;
using System.Collections;
using UnityEditor; // 编辑器命名空间的引用 public class Editor2 : EditorWindow // 编辑器类
{
private bool fold = false; // 声明折叠
private GameObject selection; // 声明被选物体 [MenuItem("EditorDemo/CreateWindow")] // 在编辑器中添加一个菜单
static void CreateWindow() // 下面这个函数必须是***静态的***
{
// 在这里面创建窗口
EditorWindow.GetWindow(typeof(Editor2), false, "EditorWindow", true);
} void OnGUI()
{
if (Selection.activeGameObject)
{
selection = Selection.gameObjects[0];
fold = EditorGUILayout.InspectorTitlebar(fold, selection); // 定义一个检视面板栏***Selection.objects表示当前被选中的物体***
if (fold) // 控制折叠
{
selection.transform.position = EditorGUILayout.Vector3Field("Position", selection.transform.position); // 定义一个Vector3输入区域
}
}
} void OnInspectorUpdate()
{
this.Repaint(); // 刷新Inspector
}
}

 
3. Slider、MinMaxSlider
因为这两个比较相似,我就放在一块讲了,能有个对比。

[code]csharpcode:

using UnityEngine;
using System.Collections;
using UnityEditor; // 编辑器命名空间的引用 public class Editor2 : EditorWindow // 编辑器类
{
private float value0 = 0f;
private float value1 = 0f;
private float value2 = 0f; [MenuItem("EditorDemo/CreateWindow")] // 在编辑器中添加一个菜单
static void CreateWindow() // 下面这个函数必须是***静态的***
{
// 在这里面创建窗口
EditorWindow.GetWindow(typeof(Editor2), false, "EditorWindow", true);
} void OnGUI()
{
value0 = EditorGUILayout.Slider("Slider", value0, -50f, 50f); // 定义单滑块
EditorGUILayout.MinMaxSlider(new GUIContent("MinMaxSlider"), ref value1, ref value2, -50f, 50f); // 定义双滑块
EditorGUILayout.BeginHorizontal(); // 将下面两个值显示在同一行
EditorGUILayout.FloatField(value1);
EditorGUILayout.FloatField(value2);
EditorGUILayout.EndHorizontal();
} void OnInspectorUpdate()
{
this.Repaint(); // 刷新Inspector
}
}

Slider中的参数包括:1. 标题;2. 值;3. 最小值;4. 最大值
MinMaxSlider的参数包括:1. 标题(注意不是string而是GUIContent);2. 前一个滑块的值;3. 后一个滑块的值;4. 最小值;5. 最大值

(转)Unity笔记之编辑器(Foldout、HelpBox、InspectorTitlebar、Slider、MinMaxSlid ...的更多相关文章

  1. (转)Unity笔记之编辑器(UnityEditor)

    在使用unity3d的过程中,时常会需要从场景中寻找或者调用一个对象,而Unity就提供了一个贴心的功能——拖拽.用鼠标拖一下中比写堆代码直观的多吧!但是Unity提供的远远不止这一丢丢,下面我们来简 ...

  2. (转)Unity笔记之编辑器(BeginFadeGroup、BeginHorizontal、BeginScrollView) ... ...

    1. BeginFadeGroup(float value) 这是EditorGUILayout中的一个函数,用来隐藏/显示在它包含的组中的内容.value则是显示内容的量,范围是0-1 . 比较下未 ...

  3. (转)Unity笔记之编辑器(BeginToggleGroup、BoundsField、ColorField) ...

    1. BeginToggleGroup() BeginToggleGroup函数是定义了一个控制范围,可以控制该范围中的GUI是否启用,看下演示代码: [code]csharpcode: using ...

  4. (转)Unity笔记之编辑器(CurveField、DoubleField、EnumMaskField、EnumPopup) ... ...

    1. CurveField创建的是一个类型为AnimationCurve的曲线变量,看代码: [code]csharpcode: using UnityEngine; using System.Col ...

  5. 《Linux就该这么学》培训笔记_ch04_Vim编辑器与Shell命令脚本

    <Linux就该这么学>培训笔记_ch04_Vim编辑器与Shell命令脚本 文章最后会post上书本的笔记照片. 文章主要内容: Vim编辑器 Shell脚本 流程控制语句 if语句 f ...

  6. 使用rider做为unity的代码编辑器

    使用Rider做的编写Unity代码的IDE,记录一些与VS不相同的笔记 安装和设置方法: 我使用Rider 2019.1 + Unity3D 2018.3.4,在安装完Rider之后,在Unity中 ...

  7. 【Unity入门】编辑器常用视图介绍

    版权声明:本文为博主原创文章,转载请注明出处. 打开Unity编辑器的主窗口,在窗口的右上角可以看到有个“Layout”按钮.这是用来对Unity编辑器主窗口上面的各个窗口面板进行布局的.通常情况下我 ...

  8. 用SublimeText当Unity Shader的编辑器

    用Visual Studio写shader实在蛋疼,那可能就会有人要问了,为啥不用插件可视化制作shader呢?因为我是新手,新手还是老老实实敲代码,慢慢来- 所以试着在网上找找,有没有类似的插件或者 ...

  9. 【Unity】自定义编辑器窗口——拓展编辑器功能

    最近学习了Unity自定义编辑器窗口,下面简单总结,方便用到时回顾. 新建一个脚本: using UnityEngine; using System.Collections; using UnityE ...

随机推荐

  1. 【HTML】百度地图webAPI使用

    1.登录百度地图,创建WEB应用,设置白名单.获取该WEB应用的ak 2.在页面引入相应的js和ak 3.效果(CSS不提供): 4.实例化地图map,并给map添加相应的搜索和确定坐标事件 < ...

  2. 浅谈ThreadPool 线程池(引用)

    出自:http://www.cnblogs.com/xugang/archive/2010/04/20/1716042.html 浅谈ThreadPool 线程池 相关概念: 线程池可以看做容纳线程的 ...

  3. python selenium --鼠标事件

    转自:http://www.cnblogs.com/fnng/p/3288444.html 本节重点: ActionChains 类 context_click()  右击 double_click( ...

  4. nginx 多域名跨域

    当浏览器发起ajax请求到其他域名时,会出现跨域的问题,在nginx上的解决方案是配置Access-Control-Allow-Origin来解决,此参数只允许配置单个域名或者*,当我们需要允许多个域 ...

  5. python-嵌套循环(Nested loop)-久久乘法表

    嵌套-久久乘法 for i in range(1,10): for j in range(1,10): print('{} × {} = {}'.format(i,j,i*j))最外层的循环依次将数值 ...

  6. C#Virtual和Override的几种组合

    情况1: class A{public void Show()} class B:A{public void Show()} 编译通过,有警告让在B的方法里添加new关键字,以便将A的方法隐藏 编译时 ...

  7. FreeSWITCH小结:关于export的原理介绍及应用

    FreeSWITCH小结:关于export的原理介绍及应用 Export原理 普通export用法 在dialplan中经常会用到export,如下所示: <action application ...

  8. SpringCloud系列十七:Hystrix的监控

    1. 回顾 上文讲解了使用Hystrix为Feign添加回退,并通过Fallback Factory检查回退原因以及如何为Feign客户端禁用Hystrix. 2. Hystrix的监控 除实现容错外 ...

  9. 【JavaScript】一个同步于本地时间的动态时间

    这样例很easy.了解JavaScript之后就是几行的代码便可以完毕的事情. 可是对于一些未接触过JavaScript的人来说,差点儿非常大project的样子.然后在网上苦苦寻觅代码,之后在茫茫的 ...

  10. Unity向量投影使用

    官方例图 测试: code: public Transform point1; public Transform point2; public Transform humanPoint; public ...