• [Editor]Unity Editor类常用方法


    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文件,写法如下:

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

      

  • 相关阅读:
    今天,你ak了吗?①
    线段树模板
    DP(关于字符串,数字串的)
    Leedsdiscussion
    高数积分求旋转体体积
    tiny mission
    莫队+数组低级化的 优先队列
    LAB2
    Leedslecturepronouncation
    Eclipse Access Restriction
  • 原文地址:https://www.cnblogs.com/zhaoqingqing/p/3944718.html
Copyright © 2020-2023  润新知