美文网首页
Unity Editor 扩展

Unity Editor 扩展

作者: XY9264 | 来源:发表于2019-04-08 17:23 被阅读0次

本文部分内容参考自这里
这篇文章中提到过,放在Editor目录下的资源和文件发布时都不会被打包,里面的脚本只会在编辑器中被使用。很多第三方插件扩展了编辑器的功能,所以都会有一个Editor文件夹,这里我想来简单了解一下Unity Editor是如何扩展的。

Editor文件夹中的脚本是不允许挂在GameObject上的,因为在Editor目录下的都被默认为Editor Script.
编写Editor Script的时候不要忘记using UnityEditor.
假设你要为Editor增加快捷打包AssetBundle的功能

public class AssetBundleTry : MonoBehaviour
{
    [MenuItem("AssetBundle/CreateAssetBundle",false,1)]
    static public void CreateAssetBundle()
    {
        BuildPipeline.BuildAssetBundles("Assets/AssetBundles", BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);
        Debug.Log("Create"); 
    }
    [MenuItem("AssetBundle/CreateAssetBundle",true)]
    static public bool CanCreateAssetBundle()
    {
        return true;//如果 return false这个选项就是灰的
    }
}

首先要注意使用MenuItem的方法必须是Static的
MenuItem有三个参数,第一个参数是菜单路径,用/分割,第二个参数指明这个函数是否为验证函数,验证函数为真时这个菜单选项是可选的,否则是灰的,第三个参数是优先级,越小越在上面,而且相邻菜单优先级差距11以上则会被分组,即菜单中多一个分隔线。默认值为1000
可以为菜单添加快捷键
◾%— — 在 Windows 上的 CTRL / CMDOSX 上

◾#— — Shift

◾&— — Alt 键

◾LEFT/RIGHT/UP/DOWN---—Arrow箭头键

◾F1......F2 — — F键

◾HOME, END,PGUP, PGDN

    [MenuItem("AssetBundle/CreateAssetBundle1 #&a", false, 70)]
    static public void CreateAssetBundle1()
    {
        Debug.Log("Create 1");
    }

上面这个例子菜单选项上面就会写快捷键是CTRL+SHIFT+A,如果是单独按键的快捷键,注意添加下划线,比图“AssetBundle/CreateAssetBundle1 _a ”表示按A触发该功能。
类似的,也可以在右键Hierarchy以及Asset的弹出菜单中添加自定义的菜单项,只需

[MenuItem("GameObject/Test2", false)] //Gameobject菜单的选项和右键Hierarchy的选项是一样的
public static void PasteTRValue()
{
    Debug.Log("Test2");
}
 
[MenuItem("Assets/Test3", false)]
public static void Test3()
{
    Debug.Log("Test3");
}

如果想在Inspector窗口中添加菜单,需要指定在某特定的Component添加“
[MenuItem("CONTEXT/ComponentName/ItemName")”,比如像要右键transform组件的时候添加菜单,则需

[MenuItem("CONTEXT/Transform/Test4")]
public static void Test4()
{
    Debug.Log("Test4");
}

以上代码给Transform脚本添加了一个右键菜单。想要给所有脚本都添加,可以在Object上添加菜单。

相关文章

  • Unity Editor 扩展

    本文部分内容参考自这里在这篇文章中提到过,放在Editor目录下的资源和文件发布时都不会被打包,里面的脚本只会在编...

  • 扩展Unity Inspector

    Unity Editor下,可以在不改变原有布局的情况下扩展Inspect的界面。 在继承了Editor的类中,有...

  • 平台宏定义

    UNITY_EDITOR Define for calling Unity Editor scripts f...

  • Unity编辑器扩展

    菜单栏扩展 创建一个Editor文件夹 在文件夹下创建c#脚本 脚本引用Unity.Editor 创建一个静态方法...

  • Unity WebGL AssetBundle

    这里用了PMXiang写的编辑器扩展脚本,该脚本需要放在Unity-Assets-Editor文件夹下核心的命令是...

  • SQLite4Unity3d-master插件使用

    using SQLite4Unity3d;using UnityEngine; if !UNITY_EDITOR ...

  • Unity编辑器扩展Extending the Editor

    前言:编辑器扩展部分在开发调试过程中会非常有帮助,基本上每个项目都会涉及到自定义Editor Window和Ins...

  • Unity3D Editor 扩展细节

    1.首先来个Inspector面板Editor的实现要实现一个组件在Inspector中的Editor功能,首先需...

  • Editor扩展

    https://www.jianshu.com/p/497fcbad2ad0

  • 修改Unity的脚本模板

    Windows路径: Unity/Editor/Data/Resources/ScriptTemplatesM...

网友评论

      本文标题:Unity Editor 扩展

      本文链接:https://www.haomeiwen.com/subject/qhqpiqtx.html