(转)Unity笔记之编辑器(CurveField、DoubleField、EnumMaskField、EnumPopup) ... ...
1. CurveField
创建的是一个类型为AnimationCurve的曲线变量,看代码:
[code]csharpcode:
using UnityEngine;
using System.Collections;
using UnityEditor; // 编辑器命名空间的引用 public class Editor2 : EditorWindow // 编辑器类
{
private AnimationCurve _animationCurve = new AnimationCurve(); // 初始化一个曲线 [MenuItem("EditorDemo/CreateWindow")] // 在编辑器中添加一个菜单
static void CreateWindow() // 下面这个函数必须是***静态的***
{
// 在这里面创建窗口
EditorWindow.GetWindow(typeof(Editor2), false, "EditorWindow", true);
} void OnGUI()
{
_animationCurve = EditorGUILayout.CurveField("AnimationCurve", _animationCurve); // 创建一个可编辑曲线区域
}
}

要注意的几点:
(1)在使用CurveField函数时,必须先要初始化AnimationCurve变量,因为函数所返回的值必须要有个地方储存。而且函数要知道这条曲线上有几个关键点(KEY);
(2)AnimationCurve类型不能光从表面意思理解为动画曲线,它其实在定义一个不规则变量的时候有很大的作用,比如:

(3)CurveField中还可以改变曲线颜色和约束,这个大家就自行尝试了。
2. DoubleField
这是一个可以输入Double类型浮点值的输入区域,和FloatField的用法相同,我就不赘述了,直接上代码:
[code]csharpcode:
using UnityEngine;
using System.Collections;
using UnityEditor; // 编辑器命名空间的引用 public class Editor2 : EditorWindow // 编辑器类
{
private double _doubleValue; // 声明一个Double变量 [MenuItem("EditorDemo/CreateWindow")] // 在编辑器中添加一个菜单
static void CreateWindow() // 下面这个函数必须是***静态的***
{
// 在这里面创建窗口
EditorWindow.GetWindow(typeof(Editor2), false, "EditorWindow", true);
} void OnGUI()
{
_doubleValue = EditorGUILayout.DoubleField("DoubleField", _doubleValue); // 创建一个Double浮点型输入区域
}
}

3. EnumMaskField、EnumPopup
EnumMaskField是一个可多选的枚举选择项,相对于EnumPopup,看代码和比较:
[code]csharpcode:
using UnityEngine;
using System.Collections;
using UnityEditor; // 编辑器命名空间的引用 public class Editor2 : EditorWindow // 编辑器类
{
private enum EnumValue0 // 这里我们声明两个枚举类型
{
value0 = 0,
value1 = 1,
value2 = 2
};
private EnumValue0 _enumValue0 = EnumValue0.value0; private enum EnumValue1 // 这里我们声明两个枚举类型
{
value0 = 0,
value1 = 1,
value2 = 2
};
private EnumValue1 _enumValue1 = EnumValue1.value0; [MenuItem("EditorDemo/CreateWindow")] // 在编辑器中添加一个菜单
static void CreateWindow() // 下面这个函数必须是***静态的***
{
// 在这里面创建窗口
EditorWindow.GetWindow(typeof(Editor2), false, "EditorWindow", true);
} void OnGUI()
{
_enumValue0 = (EnumValue0)EditorGUILayout.EnumMaskField("EnumMaskField", _enumValue0); // 多选,单选,不选
_enumValue1 = (EnumValue1)EditorGUILayout.EnumPopup("EnumPopup", _enumValue1); // 单选
}
}
 
    
(转)Unity笔记之编辑器(CurveField、DoubleField、EnumMaskField、EnumPopup) ... ...的更多相关文章
- (转)Unity笔记之编辑器(UnityEditor)
		在使用unity3d的过程中,时常会需要从场景中寻找或者调用一个对象,而Unity就提供了一个贴心的功能——拖拽.用鼠标拖一下中比写堆代码直观的多吧!但是Unity提供的远远不止这一丢丢,下面我们来简 ... 
- (转)Unity笔记之编辑器(BeginToggleGroup、BoundsField、ColorField) ...
		1. BeginToggleGroup() BeginToggleGroup函数是定义了一个控制范围,可以控制该范围中的GUI是否启用,看下演示代码: [code]csharpcode: using ... 
- (转)Unity笔记之编辑器(BeginFadeGroup、BeginHorizontal、BeginScrollView) ... ...
		1. BeginFadeGroup(float value) 这是EditorGUILayout中的一个函数,用来隐藏/显示在它包含的组中的内容.value则是显示内容的量,范围是0-1 . 比较下未 ... 
- (转)Unity笔记之编辑器(Foldout、HelpBox、InspectorTitlebar、Slider、MinMaxSlid ...
		1. Foldout.HelpBox 折叠菜单,大家都知道,不具体解释了,直接代码.因为折叠菜单中必然是有内容才能看到效果,所以顺带把HelpBox(提示框)也说了. [code]csharpcode ... 
- 《Linux就该这么学》培训笔记_ch04_Vim编辑器与Shell命令脚本
		<Linux就该这么学>培训笔记_ch04_Vim编辑器与Shell命令脚本 文章最后会post上书本的笔记照片. 文章主要内容: Vim编辑器 Shell脚本 流程控制语句 if语句 f ... 
- 使用rider做为unity的代码编辑器
		使用Rider做的编写Unity代码的IDE,记录一些与VS不相同的笔记 安装和设置方法: 我使用Rider 2019.1 + Unity3D 2018.3.4,在安装完Rider之后,在Unity中 ... 
- 【Unity入门】编辑器常用视图介绍
		版权声明:本文为博主原创文章,转载请注明出处. 打开Unity编辑器的主窗口,在窗口的右上角可以看到有个“Layout”按钮.这是用来对Unity编辑器主窗口上面的各个窗口面板进行布局的.通常情况下我 ... 
- 用SublimeText当Unity Shader的编辑器
		用Visual Studio写shader实在蛋疼,那可能就会有人要问了,为啥不用插件可视化制作shader呢?因为我是新手,新手还是老老实实敲代码,慢慢来- 所以试着在网上找找,有没有类似的插件或者 ... 
- 【Unity】自定义编辑器窗口——拓展编辑器功能
		最近学习了Unity自定义编辑器窗口,下面简单总结,方便用到时回顾. 新建一个脚本: using UnityEngine; using System.Collections; using UnityE ... 
随机推荐
- EventBus的粘性事件
			下午赶去公司解决了电台业务首次语音搜台后(用到服务,但只出一个独立的Activity,主界面并没有打开)不能听歌识曲的问题. 排查到最后,去识别的消息确实是发出去了,但是却没有收到,没有收到消息当然不 ... 
- Android4.4 SystemUI加入Dialog弹窗
			此弹窗为开机SystemUI的显示弹窗: 首先.在SystemUI的源代码文件夹加入源代码类文件,文件夹为frameworks/base/packages/SystemUI/src/com/andro ... 
- ZK框架笔记5、事件
			事件是org.zkoss.zk.ui.event.Event类,它通知应用程序发生了什么事情.每一种类型的事件都由一个特定的类来表示. 要响应一个事件,应用程序必须为事 ... 
- Android Exception 13(Can't create handler inside thread that has not called Looper.prepare())
			10-12 17:02:55.500: E/AndroidRuntime(28343): FATAL EXCEPTION: Timer-2 10-12 17:02:55.500: E/AndroidR ... 
- 【Python 数据分析】pandas数据导入
			导入CSV文件数据 环境 C:\Users\Thinkpad\Desktop\Data\信息表.csv 语法 pd.read_csv(filename):从CSV文件导入数据 实现代码 import ... 
- maven的profile 目录、变量打包
			<project> <build> <finalName>maven-project</finalName> <resources> < ... 
- Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet] 异常
			1. 异常描述 FATAL EXCEPTION: main Process: com.whereru.greengrass.goforit, PID: 13847 java.lang.RuntimeE ... 
- SUSE11SP3--安装svn
			SUSE上安装新版本的subversion是一件很麻烦的事情,涉及到的依赖太多,包括需要更新部分工具的版本. 为了以较小的代价安装subversion,我决定在SUSE11下安装 subversion ... 
- xib  autolayout  subview
			http://sebastiancelis.com/2014/06/12/using-xibs-layout-custom-views/ initWitchCoder 有点小问题 
- 简单而直接的Python web 框架:web.py
			web.py 是一个Python 的web 框架,它简单而且功能强大.web.py 是公开的,无论用于什么用途都是没有限制的. 先让大家感受一下web.py 的简单而强大: import web ur ... 
