拓展编辑器(五)_监听事件
生活随笔
收集整理的这篇文章主要介绍了
拓展编辑器(五)_监听事件
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
监听事件
这个是拓展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
总结
以上是生活随笔为你收集整理的拓展编辑器(五)_监听事件的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: c++入门之浅入浅出类——分享给很多想形
- 下一篇: docker 配置阿里云镜像加速