Unity编辑器---创建对话框
来源:互联网 发布:我的祖国 知乎 编辑:程序博客网 时间:2024/05/17 09:25
Unity编辑器(三)—ScriptableWizard
这一篇主要讲创建对话框和保存记录操作并撤销更改和提示信息
1、创建对话框
首先新建一个脚本代码如下
using UnityEngine;using UnityEditor;public class MyWizard : ScriptableWizard { [MenuItem("MyTools/CreateWizard")] static void CreateWizard() { ScriptableWizard.DisplayWizard<MyWizard>("我的对话框"); } public float ChangeRange = 1f;}
看一下效果
在来改变一下Create按钮名字
把”ScriptableWizard.DisplayWizard(“我的对话框”);“这段代码改成“ScriptableWizard.DisplayWizard(“我的对话框”,”确定”);”就行了,来看一下效果。
2、给自己的对话框写一点小功能
在这里我就演示一下利用自己制作的对话框来改变脚本的某一个变量的数值
添加下面这一段代码
//OnWizardCreate不要写错了哦!不然无效哦 private void OnWizardCreate() { GameObject[] Prefabs = Selection.gameObjects; foreach (GameObject go in Prefabs) { //MyGameObject 脚本是我以前一篇博客写的脚本,想看的话在后面会给个超链接 MyGameObject Range = go.GetComponent<MyGameObject>(); Range.m_Range += ChangeRange; } }
MyGameObject脚本。 —— [ 传送们]
来看一下效果图
3、添加保存记录方便撤销
这也是很简单的,只要一行代码就搞定了。
在改变数值前面加一行代码,如下
MyGameObject Range = go.GetComponent<MyGameObject>(); Undo.RecordObject(Range, "Chang Range"); //保存记录 Range.m_Range += ChangeRange;
这回改变数值后可以按Ctrl+Z撤销回来
4、提示信息
提示信息也比较简单主要用到OnWizardUpdate和OnSelectionChange
这里是官方的文档介绍—— [ 传送们]
//刚打开的时候和改变数值的时候调用 private void OnWizardUpdate() { helpString = ""; errorString = ""; string Name = ""; if (Selection.gameObjects.Length > 0) { GameObject[] Prefabs = Selection.gameObjects; foreach (GameObject go in Prefabs) { Name += go.name + "、"; } helpString = "当前选择了" + Name + "物体"; } else { errorString = "请选择物体"; } } //选择的物体改变的时候调用 private void OnSelectionChange() { OnWizardUpdate(); }
来看一下效果图
好了,下面我在把完整代码放出来
using UnityEngine;using UnityEditor;public class MyWizard : ScriptableWizard { [MenuItem("MyTools/CreateWizard")] static void CreateWizard() { ScriptableWizard.DisplayWizard<MyWizard>("我的对话框","确定"); } public float ChangeRange = 1f; private void OnWizardCreate() { GameObject[] Prefabs = Selection.gameObjects; foreach (GameObject go in Prefabs) { MyGameObject Range = go.GetComponent<MyGameObject>(); Undo.RecordObject(Range, "Chang Range"); //保存记录 Range.m_Range += ChangeRange; } } //刚打开的时候和改变数值的时候调用 private void OnWizardUpdate() { helpString = ""; errorString = ""; string Name = ""; if (Selection.gameObjects.Length > 0) { GameObject[] Prefabs = Selection.gameObjects; foreach (GameObject go in Prefabs) { Name += go.name + "、"; } helpString = "当前选择了" + Name + "物体"; } else { errorString = "请选择物体"; } } //选择的物体改变的时候调用 private void OnSelectionChange() { OnWizardUpdate(); }}
另外说一句有空去看看官方文档,那里的介绍是最全、最新的。
阅读全文
0 0
- Unity编辑器---创建对话框
- Unity创建自定义窗口编辑器
- Unity编辑器
- unity编辑器
- Unity在编辑器模式下动态创建Prefab
- Unity Editor 编辑器扩展 七 创建脚本模版
- Unity Editor 编辑器扩展 十三 自定义创建资源
- Unity-编辑器创建Lua脚本模版-热更新
- 【代码挖掘】创建unity工程常用目录的editor编辑器
- unity编辑器拓展七——脚本创建模型
- Unity-Unity编辑器Part1
- Unity-Unity编辑器Part2
- Unity-Unity编辑器Part3
- Unity-Unity编辑器Part4
- Unity-Unity编辑器Part5
- Unity教程之-制作闪亮的星星Star(三):给Star创建Unity Editor编辑器
- 创建对话框
- 创建对话框
- TMS320F28377S开发过程中的常见问题
- oracle:集合(二)
- scala学习笔记-特质
- 数组中只出现一次的数字
- Mybatis基础---常用SQL映射标签、多参数设置、resultMap(自定义映射)
- Unity编辑器---创建对话框
- 抽象类和接口的异同
- Deep Neural Network for Image Classification:Application
- 单分支条件语句
- 计算1~n之间的所有的数的平方和立方 习题6.4
- 我的笔记
- webpack知识学习第1天,配置语言
- Task 10
- 静态方法传值