Unity编辑器扩展

发布于 2021-07-28  250 次阅读


知识点

最近在看一些教程,为了更好的复习,就来做一些知识点总结吧,方便后面忘记了的时候查阅。

第一阶段看完了,是一个小功能,下面会先介绍分知识点,然后将知识点总结成一个完整的样例。

获取当前时间

DateTime.Now.ToString("yyyyMMdd_HH");

双引号里面的格式有很多种,这里是使用了年月日小时的形式,大写的HH表示24小时哦。

复制文本到剪贴板

GUIUtility.systemCopyBuffer = "复制的文本";

导出UnityPackage

string assetPathName = "Assets/QFramework";
string fileName = "QFramework_" + DateTime.Now.ToString("yyyyMMdd_HH") + ".unitypackage";
AssetDatabase.ExportPackage(assetPathName, fileName, ExportPackageOptions.Recurse);

assetPathName:将要到处到Package里面的目录。

fileName:目标目录,也就是你的package要存在哪个目录。

打开文件夹

Application.OpenURL("file:///" + Application.dataPath+"/../");

这里面打开的文件夹就是Assets的同级目录,也就是Assets的父目录。

调用MenuItem

EditorApplication.ExecuteMenuItem("name");

这里双引号部分就是MenuItem的路径了。

自定义快捷键

[MenuItem("自定义快捷键 %e")]
private static void MenuClicked()
{
      //code
}

常用的快捷键解释。

  • %-CTRL 在Windows / CMD在OSX
  • # -Shift
  • & -Alt
  • LEFT/RIGHT/UP/DOWN-光标键
  • F1…F12
  • HOME,END,PGUP,PDDN

样例

我们用上面的知识点实现一个小例子,方便我们掌握。

using UnityEngine;
#if UNITY_EDITOR
using System;
using UnityEditor;
#endif
namespace QFramework
{
    public class OneTImeAll : MonoBehaviour
    {
#if UNITY_EDITOR
        private static string _mFileName = "";

        [MenuItem("QFrameWork/Output Unitypackage & Copy file name %q")]
        private static void MenuClicked()
        {
            EditorApplication.ExecuteMenuItem("QFrameWork/Output Untiypackage");
            GUIUtility.systemCopyBuffer = _mFileName;
        }
        [MenuItem("QFrameWork/Output Untiypackage")]
        private static void OutputUntiyPackage()
        {
            string timeStr = DateTime.Now.ToString("yyyyMMdd_HH");

            string assetPathName = "Assets/QFramework";
            _mFileName = "QFramework_" + timeStr+".unitypackage";
            AssetDatabase.ExportPackage(assetPathName,_mFileName,ExportPackageOptions.Recurse);
            Application.OpenURL("file:///"+Application.dataPath+"/../");
        }
#endif
    }
}

"You got to put the past behind you before you can move on. "