(转)Unity笔记之编辑器(Foldout、HelpBox、InspectorTitlebar、Slider、MinMaxSlid ...
2015-12-20 19:06
615 查看
1. Foldout、HelpBox
折叠菜单,大家都知道,不具体解释了,直接代码。因为折叠菜单中必然是有内容才能看到效果,所以顺带把HelpBox(提示框)也说了。
折叠菜单的使用十分简单,一个状态值,一个标题名;要注意的是HelpBox中的MessageType,它有四种类型Error、Info、None、Warning。不同的消息类型,有不同的显示效果。
2. InspectorTitlebar
3. Slider、MinMaxSlider
因为这两个比较相似,我就放在一块讲了,能有个对比。
Slider中的参数包括:1. 标题;2. 值;3. 最小值;4. 最大值
MinMaxSlider的参数包括:1. 标题(注意不是string而是GUIContent);2. 前一个滑块的值;3. 后一个滑块的值;4. 最小值;5. 最大值
折叠菜单,大家都知道,不具体解释了,直接代码。因为折叠菜单中必然是有内容才能看到效果,所以顺带把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. 最大值
相关文章推荐
- (转)使用.NET Reflector 查看Unity引擎里面的DLL文件
- unity 内存管理
- (转)初步认识拓展UnityEditor编辑器定制
- (转)Unity3d游戏开场CG动画播放方式
- (转)Unity 导出XML配置文件,动态加载场景
- unity3d最新面试题与参考答案汇总
- unity3d面试题与参考答案
- 去蓝港在线面试Unity3D的笔试题。难吗?知道答案的在评论里写出来分享
- [转]unity3d所要知道的基础知识体系大纲,可以对照着学习,不定期更新 ... ... ... ...
- (转)Unity3D集成SVN进行版本控制
- (转载)Unity中解析ini配置文件----INIParser
- (转载)Unity3D研究院之使用 C#合成解析XML与JSON(四十一)
- Unity Text加入超链接
- 用unity3d+cardboard开发一个全景图片查看器
- Unity3D 获得GameObject组件的方法
- Unity中UGUI人物血条跟随的几种实现方式(二)
- Unity中四种坐标系
- KING_UNITY学习之Unity2D代码动态为Sprite Renderer的Sprite赋值sprite精灵图片
- Unity中UGUI人物血条跟随的几种实现方式(一)
- unity3d的四元数 Quaternion