博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转)Unity笔记之编辑器(Foldout、HelpBox、InspectorTitlebar、Slider、MinMaxSlid ...
阅读量:4538 次
发布时间:2019-06-08

本文共 2903 字,大约阅读时间需要 9 分钟。

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. 最大值

转载于:https://www.cnblogs.com/backlighting/p/5061576.html

你可能感兴趣的文章
Oracle -操作数据库
查看>>
c - 给分数分级别
查看>>
chrome 调试
查看>>
luoguP2774 方格取数问题
查看>>
tcp/ip协议各层的理解与
查看>>
python中的setdefault()方法
查看>>
转 VSFTP用户权限管控
查看>>
poj2420 A Star not a Tree? 模拟退火
查看>>
微信小程序--登录授权,一键获取用户微信手机号并登录
查看>>
[转载] C#面向对象设计模式纵横谈——13. Proxy代理模式
查看>>
JqueryEasyUI浅谈---视频教程公布
查看>>
ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致”...
查看>>
Javaweb之 servlet 开发详解1
查看>>
Restore IP Addresses
查看>>
DWR框架简单应用
查看>>
KMP 学习心得-----转
查看>>
time.strftime:格式化字符串中含中文报错处理
查看>>
模态窗口缓存无法清除怎么办? 在地址上加个随机数吧"&rd=" + new Date().getTime()
查看>>
阿里的weex框架到底是什么
查看>>
Tesis enDYNA
查看>>