[Editor]Unity Editor类常用方法

本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/3944718.html



Editor文档资料#

Unity教程之-Unity Attribute的使用总结:http://www.unity.5helpyou.com/3550.html

利用unity3d属性来设置Inspector面板的特殊行为: http://www.360doc.com/content/15/1205/14/25502502_518083734.shtml

--------------分隔线------------------

一些比较常用的Editor功能我在之前的博客中也有提到过所以就不详细写啦,今天浏览到 麒麟子(Alex) 的博客,写的很全面,转载部分内容过来大笑

EditorApplication(主应用程序类)#

这个类提供了许多变量的访问,同时提供了Save等方法。 比如,你可以新建一个编辑器脚本,在它的UPDATE函数里,进行记事,以做定时保存。从而避免不必要的损失。

这个类还提供了新建场景,打开项目等操作。

如果你是在界面下使用UNITY3D,可能这个类的意义不大。 但如果你是基于U3D的命令行来构建一个一键式多平台发布方案。那这个类的地位就举足轻重了。 说到命令行,这个改天有空再和大家细说。 U3D是一个强大的工具,完全可以取代自主研发的引擎。 不管是从自动化部署还是自定义工具上,都很强大。 关键看你打不打算花时间去这样用。

当然我们在制作自己的编辑器工具时也有使用到它来做一些初始化场景的工作。

BaseHierarchySort(对象排序)#

在Hierarchy中,所有对象默认是按首字母排序。 如果我想根据创建日期,或者是根据地理位置,又或者根据对象类型来排序,如何做呢。 这就需要用到BaseHierarchySort,我们可以重写它的Compare方法,同时,我们添加几个菜单来做切换。就能使我们的工作很加便利了。

image

EditorUtility#

一看明字就知道,这货肯定提供了不少全局函数,并且多半是静态的。比如,你想弹出一个打开文件的对话框,或者保存文件的对话框。或者你要查看场景树中的某个对象是enable与否,都可以通过它来访问。更好的是,他还提供了一个弹出对话框。 你想做一些让用户选择是否确定的,或者显示一个About,可以使它。

image

参见:http://game.ceeger.com/Script/EditorUtility/EditorUtility.html

EditorWindow#

当一个类继承自EditorWindow ,可以调用this.ShowNotification()  它会自动消失,如果想快速移出消息提示:this.RemoveNotification();

文档:http://docs.unity3d.com/ScriptReference/EditorWindow.ShowNotification.html

image

FileUtil(文件工具)#

这个类提供了一些文件拷贝,移动位置等操作,在命令行模式进行自动布署的时候,使用居多。

image

Help#

在你的编辑器中,如果你觉得你的文字不足以表达,或者需要用户查询相关文档,那你可以使用HELP,它提供了打开网页地址的功能。

image

ObjectPreview(创建自定义预览)#

这个类提供了你当前选择的对象数据。 比如,在上面显示攻击和侦测范围的例子中,如果我们只是想让选中的单位才显示预览,那我们可以通过这个类的target来判定。

NGUI示例#

可以查看NGUI的UISPriteInspector.cs文件,对Sprite做了预览处理

imageimageimage

Tools(工具类,好的自定义编辑器)#

这个类提供了对象批量查找功能,比如,如果我们的工具,想对某一类对象进行打包。 那我们直接使用FindObjectsOfType,拿到所有的对象即可。 TOOL还提供了实例化对象的功能。

AssetDatabase(资源操作)#

文档:https://docs.unity3d.com/ScriptReference/AssetDatabase.html

提供对Project视图中的资源进行操作,比如LoadAsset,MoveAsset,DeleteAsset等

注意:这个类的API的路径都是指Assets/下的,比如你要Load某个Font文件,写法如下:

1
var newFont = AssetDatabase.LoadAssetAtPath<Font>("Assets/font.ttf");

  

 

作者:赵青青   一名在【网易游戏】做游戏开发的程序员,擅长Unity3D,游戏开发,.NET等领域。
本文版权归作者和博客园共有,欢迎转载,转载之后请务必在文章明显位置标出原文链接和作者,谢谢。
如果本文对您有帮助,请点击【推荐】您的赞赏将鼓励我继续创作!想跟我一起进步么?那就【关注】我吧。
posted @   赵青青  阅读(16366)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
阅读排行:
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 易语言 —— 开山篇
· Trae初体验
CONTENTS
点击右上角即可分享
微信分享提示