——复用MenuItem
using UnityEditor;
using UnityEngine;
public class Test : MonoBehaviour
{
[MenuItem("Tools/Click Test1")]
private static void Test1()
{
Debug.Log("Click Test1");
}
[MenuItem("Tools/Click Test2")]
private static void Test2()
{
EditorApplication.ExecuteMenuItem("Tools/Click Test1");
}
}
——动态导出unitypackage
using UnityEngine;
using UnityEditor;
using System;
public class EditorEx : MonoBehaviour
{
[MenuItem("Tools/Export UnityPackage")]
public static void Export()
{
string exportPath = EditorUtility.OpenFolderPanel("select path", "", "");
string[] filePath;
Object[] o = Selection.objects;
filePath = new string[o.Length];
for (int i = 0; i < o.Length; i++)
{
filePath[i] = AssetDatabase.GetAssetPath(o[i]);
}
AssetDatabase.ExportPackage(filePath, exportPath + "/test.unitypackage", ExportPackageOptions.Recurse);
AssetDatabase.Refresh();
EditorUtility.DisplayDialog("导出Unitypackage成功", "导出Unitypackage成功", "");
}
}
——聚焦到Project窗口
EditorUtility.FocusProjectWindow();
——强制触发脚本编译
UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation();
——一键重启工程
[MenuItem("Tools/ReOpen", priority = 0)]
static void ReOpen()
{
string projectPath = Application.dataPath.Replace("/Assets", "");
EditorApplication.OpenProject(projectPath);
}