unity编辑器扩展_07(创建对话框,检测按钮的点击,点击按钮后提示信息,保存设置的数据,显示点击按钮后的处理的进度条信息)
代码:
using UnityEditor;
using UnityEngine;
public class ChangeValue : ScriptableWizard {
public int health = 10;
public int speed = 23;
[MenuItem("Tools/CreateWizard")]
static void CreateWizard()
{
ScriptableWizard.DisplayWizard<ChangeValue>("这是自己创建的标题", "按钮1的名字","按钮2的名字");
}
void OnWizardCreate()
{
ShowNotification(new GUIContent(Selection.gameObjects.Length + "多个游戏物体被改变"));//显示提示信息
GameObject[] gameObject = Selection.gameObjects;
EditorUtility.DisplayProgressBar("这是进度条的标题", "进度信息", 0);
int count = 0;
foreach (GameObject go in gameObject)
{
count++;
CompleteProject.PlayerHealth ph = go.GetComponent<CompleteProject.PlayerHealth>();
Undo.RecordObject(ph,"ph");//对点击事件的撤销功能
ph.startingHealth += health;
ph.flashSpeed += speed;
EditorUtility.DisplayProgressBar("这是进度条标题", "进度信息", count / Selection.gameObjects.Length);
}
EditorUtility.ClearProgressBar();
}
void OnWizardOtherButton()
{
OnWizardCreate();
}
const string healtKey = "health";
const string speedKey = "speed";
void OnEnable()
{
health = EditorPrefs.GetInt(healtKey, health);
speed = EditorPrefs.GetInt(speedKey, speed);
}
void OnWizardUpdate()
{
string helpString = null;
string errorString = null;
if (Selection.gameObjects.Length > 0)
{
helpString = "您当前选择了" + Selection.gameObjects.Length + "个游戏物体";
}
else
{
errorString = "请选择至少一个游戏物体";
}
EditorPrefs.SetInt(healtKey, health);
EditorPrefs.SetInt(speedKey, speed);
}
void OnSelectionChange()
{
OnWizardUpdate();
}
}
说明:使用ScriptableWizard.DisplayWizard创建对话框<类名>(“对话框名标题”,“按钮1”,“按钮2”),当参数不设置按钮1是,则默认按钮名字为Create。按钮2根据实际情况决定是否需要。
使用Undo.RecordObject对点击事件的撤销功能,第一个参数为需要保存的值,第二为该值保存后的名字。
使用ShowNotification显示提示信息
使用EditorPrefs保存数据
使用EditorUtility.DisplayProgressBar显示进度条
unity编辑器扩展_07(创建对话框,检测按钮的点击,点击按钮后提示信息,保存设置的数据,显示点击按钮后的处理的进度条信息)的更多相关文章
- unity 编辑器扩展简单入门
unity 编辑器扩展简单入门 通过使用编辑器扩展,我们可以对一些机械的操作实现自动化,而不用使用额外的环境,将工具与开发环境融为一体:并且,编辑器扩展也提供GUI库,来实现可视化操作:编辑器扩展甚至 ...
- Unity编辑器扩展chapter1
Unity编辑器扩展chapter1 unity通过提供EditorScript API 的方式为我们提供了方便强大的编辑器扩展途径.学好这一部分可以使我们学会编写一些工具来提高效率,甚至可以自制一些 ...
- Unity编辑器扩展 Chapter7--使用ScriptableObject持久化存储数据
Unity编辑器扩展 Chapter7--使用ScriptableObject持久化存储数据 unity unity Editor ScirptableObject Unity编辑器扩展 Chapt ...
- unity编辑器扩展学习
扩展编辑器实际上就是在unity菜单栏中添加一些按钮,可以一键执行一些重复性的工作. 一.添加按钮 1.简单使用MenuItem特性 using UnityEngine; using UnityEdi ...
- Unity 编辑器扩展 Chapter2—Gizmos
二. 使用Gizoms绘制网格及矩阵转换使用 1. 创建Leve类,作为场景控制类: using UnityEngine; //使用namespace方便脚本管理 namespace RunAndJu ...
- Unity 编辑器扩展
自定义检视面板的使用: 先是定义一个脚本文件,我们来修饰它的检视面板: [HelpURL("http://www.baidu.com")] public class Atr : M ...
- Unity编辑器扩展Texture显示选择框
学习NGUI插件的时候,突然间有一个问题为什么它这些属性可以通过弹出窗口来选中呢? 而我自己写的组件只能使用手动拖放的方式=.=. Unity开发了组件Inspector视图扩展API,如果我们要写插 ...
- Unity 编辑器扩展 场景视图内控制对象
http://blog.csdn.net/akof1314/article/details/38129031 假设有一个敌人生成器类,其中有个属性range用来表示敌人生成的范围区域大小,那么可以用O ...
- unity编辑器扩展_01(在工具栏中创建一个按钮)
代码: [MenuItem("Tools/Test",false,1)] static void Test() { Debug.Log("tes ...
随机推荐
- jenkins默认在build结束后会kill掉所有的衍生进程
在使用jenkins进行自动化部署服务的过程中,发现调用服务器的shell命令无法正常启动tomcat,但是构建日志显示是成功执行的,而手动在服务器却是可以正常启动tomcat. 原因:jenkins ...
- asn1 学习笔记
语法 定义 Name ::= type 定义一个名称为“Name”的元素 它是一个给定ASN.1类型“Type”的实例 MyName ::= IA5String //IA5String(类似于ASCI ...
- bean的创建(五)第三部分 bean工厂方法参数的解析
准备好一系列参数之后,开始参数类型的转换,方法参数的对应. ConstructorResolver.createArgumentArray private ArgumentsHolder create ...
- python基础学习(起步)
目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...
- 【iOS】沙盒目录
有关沙盒目录参考: http://blog.csdn.net/totogo2010/article/details/7669837 获取沙盒路径,参考代码: NSArray *paths = NSSe ...
- Spark Streaming消费Kafka Direct保存offset到Redis,实现数据零丢失和exactly once
一.概述 上次写这篇文章文章的时候,Spark还是1.x,kafka还是0.8x版本,转眼间spark到了2.x,kafka也到了2.x,存储offset的方式也发生了改变,笔者根据上篇文章和网上文章 ...
- Transformations 方块转换 USACO 模拟 数组 数学 耐心
1006: 1.2.2 Transformations 方块转换 时间限制: 1 Sec 内存限制: 128 MB提交: 10 解决: 7[提交] [状态] [讨论版] [命题人:外部导入] 题目 ...
- Kubernetes容器集群管理环境 - 完整部署(上篇)
Kubernetes(通常称为"K8S")是Google开源的容器集群管理系统.其设计目标是在主机集群之间提供一个能够自动化部署.可拓展.应用容器可运营的平台.Kubernetes ...
- Office2019 VOL版本 自定义安装组件
众所周知,Office VOL版本可以连接KMS服务器激活,但是office2019没有镜像可以下载,所以只能依靠Office Deployment Tool来进行操作.注:Office2019 Re ...
- 【Java例题】7.6文件题3-文本文件统计
6.文本文件统计.已有一个文本文件文件,请统计数字.大写字母.小写字母.汉字及其它字符出现的次数:然后将这些次数由大到小写到另一个文件之中.说明:将次数为零的过滤掉排序 package chapter ...