监听事件

  这个是拓展Project视图的最后一节,这里将会介绍一下如何借助程序来约束project视图中的资源。例如用程序来判断资源的原始位置以及将要移动的位置是否合法,从而决定是否能阻止本次移动。Unity为此提供了监听的基类。

using UnityEngine;
using UnityEditor;public class Script_04: UnityEditor.AssetModificationProcessor
{[InitializeOnLoadMethod]static void InitializeOnLoadMethod(){//全局监听Project视图下的资源是否发生变化(添加,删除和移动)EditorApplication.projectChanged += delegate (){Debug.Log("change");};}//监听"双击鼠标左键,打开资源"事件public static bool IsOpenForEdit(string assetPath, out string message){message = null;Debug.LogFormat("assetPath:{0}", assetPath);//true标识该资源可以打开,false标识不允许在Unity中打开该资源return true;}//监听"资源即将被创建"事件public static void OnWillCreateAsset(string path){Debug.LogFormat("path:{0}", path);}//监听"资源即将被保存"事件public static string[] OnWillSaveAsset(string[] paths){if (paths != null){Debug.LogFormat("path:{0}", string.Join(",", paths));}return paths;}//监听"资源即将被移动"事件public static AssetMoveResult OnWillMoveAsset(string oldPath, string newPath){Debug.LogFormat("from:{0} to:{1}", oldPath, newPath);//AsserMoveResult.DidMovereturn AssetMoveResult.DidMove;}//监听"资源即将被删除"事件public static AssetDeleteResult OnWillDeleteAsset(string assetPath, RemoveAssetOptions opint){Debug.LogFormat("delete:{0}", assetPath);//AssetDeleteResult.DidNotDelete表示该资源可以被删除return AssetDeleteResult.DidNotDelete;}
}

  这个类需要继承UnityEditor.AssetModificationProcessor,然后重写监听资源创建,移动,保存和删除的方法,处理自己的特殊逻辑。

转载于:https://www.cnblogs.com/llllllvty/p/9857758.html

拓展编辑器(五)_监听事件相关推荐

  1. Vue-1-实例、渲染、监听事件

    一.概念 渐进的意思是我们可以用vue只写一个页面,慢慢的把整个项目用vue替换掉 结合了React和Angular,也有自己的优点 二.Vue实例 页面的值都是从data里来的,随data值的改变而 ...

  2. vue_组件_监听组件事件

    1.$emit 的使用 在组件中注册自定义事件 $emit(事件名, 参数)    //该参数会当作第一个参数传入绑定的函数中 下面用一个菜单栏例子来说明,如下图所示 组件 Vue.component ...

  3. Unity编辑器扩展——在Editor下动态添加监听事件

    对于Unity下例如按钮这种我们可以为它的监听事件手动进行赋值 如果需要通过编辑器扩展来动态为这些监听事件赋值应该如何去实现呢? 首先需要确认的是这些监听事件必须要符合一定的规则才能添加上: 1.必须 ...

  4. java图形界面的监听_非专业码农 JAVA学习笔记 用户图形界面设计与实现-所有控件的监听事件...

    用户图形界面设计与实现-监听事件 System.applet.Applet (一)用户自定义成分 1.绘制图形 Public voit piant(Ghraphics g){  g.drawLine等 ...

  5. pygame中的监听事件以及精灵和精灵组

    pygame监听事件以及精灵和精灵组 文章目录 pygame监听事件以及精灵和精灵组 1.游戏循环中监听事件 1.事件(event) 2.监听 3.代码实现 二.理解精灵和精灵组 1.精灵 2.精灵组 ...

  6. JavaScript前端监听事件移除案例

    学完计算机专业小结一下:如何利用JavaScript解决这样的网课只能在固定界面观看视频观看的问题 业务场景 场景1.常见如网课听课,不能离开当前的屏幕,同时过一段时间要移动鼠标 场景2.如小程序或者 ...

  7. chrome扩展(插件)开发(五)监听网页的ajax请求

    我的插件想要监听网页发出的请求, 然后根据请求的状态来做具体的操作. 实现的方法主要有三种方式 google官方提供的api chrome.webRequest 这里在插件中监听宿主页面的ajax 重 ...

  8. ROS中 Python/C++ 键盘按键监听事件

    ROS中 Python/C++ 键盘按键监听事件 这几天在肝全国智能驾驶大赛,真就挺累的:抓狂思考,手搓代码,疯狂编译,要命运行.在这趟火车上,被各种各样的问题卡住甚至卡死,就很难受好吧.至今,我深深 ...

  9. Spring Boot监听事件同步和异步使用

    废话前言: 代码环境:WIN7+IDEA+JAD1.8+Spring Boot 2.0 首先说一下我为什么使用事件,比如现在创建一个订单但是我创建成功后要给客户发送一条短信和一个邮件提醒,本身没创建订 ...

最新文章

  1. Modeling System Behavior with Use Case(2)
  2. Boost:fork联接的测试程序
  3. 迪士尼自研算法突破百万高清像素用AI换脸来拍电影
  4. Unix环境高级编程的学习环境的搭建
  5. java生成word带多级标题,word自动生成多级标题的方法
  6. DNF自动获取C语言,VC++开发硬件DNF搬砖项目全新发车,想上车的要赶紧
  7. OSPF开销值、协议优先级及计时器的修改
  8. 互联网晚报 | 12月17日 星期五 | 抖音电商独立App“抖音盒子”正式上线;腾讯电子签上线商家版功能;年内首只游戏股上市...
  9. 【图像融合】基于matlab小波变换灰色图像融合(含相关性、信噪比)【含Matlab源码 1841期】
  10. 使用 openocd 调试 STM32F103
  11. 移动硬盘linux系统安装win7系统,超简单的移动硬盘安装系统win7教程
  12. JAVAOooooo。。。。。ooo0000OOOOO
  13. 使用命令将项目打包并使用WinSCP将包部署到服务器
  14. bootstrap 详细教程笔记
  15. 设置EditText输入的文字全部变成大写或小写方案总结
  16. Java生鲜电商平台-商品中心的架构设计与源码解析
  17. python的擅长领域
  18. AndroidStudio电子书的实现
  19. 苹果电脑双系统如何切换,CrossOver兼容双系统无需切换轻松帮你解决
  20. Android保持屏幕常亮的两种方法

热门文章

  1. CDH使用秘籍(一):Cloudera Manager和Managed Service的数据库
  2. JavaScript中innerHTML与innerText,createTextNode的区别
  3. CentOs7中安装sonarQube服务系列------3.安装SonarQube服务器
  4. 在 Windows 上直接运行 Linux,有命令行就是贼香
  5. 蚂蚁金服面试经历!临场发挥!
  6. centos(linux) 下如何查看端口占用情况及杀死进程
  7. 一文盘点数据行业的动态演变
  8. 学习编程的25个“坑”,你踩到了吗?
  9. 干货 | 图解 https 单向认证和双向认证!
  10. 框架:@Bean注解