Unity编辑器扩展
知识点
最近在看一些教程,为了更好的复习,就来做一些知识点总结吧,方便后面忘记了的时候查阅。
第一阶段看完了,是一个小功能,下面会先介绍分知识点,然后将知识点总结成一个完整的样例。
获取当前时间
1
| DateTime.Now.ToString("yyyyMMdd_HH");
|
双引号里面的格式有很多种,这里是使用了年月日小时的形式,大写的HH表示24小时哦。
复制文本到剪贴板
1
| GUIUtility.systemCopyBuffer = "复制的文本";
|
导出UnityPackage
1 2 3
| string assetPathName = "Assets/QFramework"; string fileName = "QFramework_" + DateTime.Now.ToString("yyyyMMdd_HH") + ".unitypackage"; AssetDatabase.ExportPackage(assetPathName, fileName, ExportPackageOptions.Recurse);
|
assetPathName:将要到处到Package里面的目录。
fileName:目标目录,也就是你的package要存在哪个目录。
打开文件夹
1
| Application.OpenURL("file:///" + Application.dataPath+"/../");
|
这里面打开的文件夹就是Assets的同级目录,也就是Assets的父目录。
1
| EditorApplication.ExecuteMenuItem("name");
|
这里双引号部分就是MenuItem的路径了。
自定义快捷键
1 2 3 4 5
| [MenuItem("自定义快捷键 %e")] private static void MenuClicked() { //code }
|
常用的快捷键解释。
- %-CTRL 在Windows / CMD在OSX
- # -Shift
- & -Alt
- LEFT/RIGHT/UP/DOWN-光标键
- F1…F12
- HOME,END,PGUP,PDDN
样例
我们用上面的知识点实现一个小例子,方便我们掌握。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| 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 } }
|