在上一篇中我们搞定了直接弹出文件夹功能,那么在这篇我们试着把它集成到我们导出步骤了。
那么我们要在第四个示例上直接加入代码嘛?
不是的,从笔者写教程的角度来讲,这样做会造成一个问题。教程和示例是一起发布的,如果在第四个示例上直接加入代码,那么,如果刚刚看完第四个篇教程的同学,去翻代码的时候,结果第四个示例根本看不懂,这样很容易造成困惑。
而这个框架搭建系列专栏作为笔者打算写一年的年度大专栏,这才刚到第六篇文章就要改之前的代码,是不允许这样做的:)。所以呢这部分只能做一点妥协。
要么在第六个示例中把第四个示例的核心代码复制过来,要么在第六个示例中想想有没有办法直接调用第四个示例的代码。作为一个优秀的开发者,肯定不要用前者了。
我们先来看看第四个示例的代码
using
System
;
#
if
UNITY_EDITOR
using
UnityEditor
;
#
endif
using
UnityEngine
;
namespace
QFramework
{
public
class
ExportUnityPackage
:
MonoBehaviour
{
#
if
UNITY_EDITOR
[
MenuItem
(
"QFramework/4.导出 UnityPackage"
)
]
private
static
void
MenuClicked
(
)
{
var
assetPathName
=
"Assets/QFramework"
;
var
fileName
=
"QFramework_"
+
DateTime
.
Now
.
ToString
(
"yyyyMMdd_hh"
)
+
".unitypackage"
;
AssetDatabase
.
ExportPackage
(
assetPathName
,
fileName
,
ExportPackageOptions
.
Recurse
)
;
}
#
endif
}
}
很遗憾地看到,这个 MenuClicked 被声明为了 private 类型。所以无法直接调用了。
那么有别的办法嘛?
答案是有的。
MenuItem 是可以被调用的。笔者是怎么知道的呢,就是用到的一些插件还有项目都会去试着去看看,看懂一点,有收获就写个例子记录到自己的知识库里。
关键 API 如下:
EditorApplication
.
ExecuteMenuItem
(
"QFramework/4.导出 UnityPackage"
)
;
只要执行这行代码,就可以执行示例四的逻辑了,也就是一键导出 unitypackage 的逻辑。
我们的今天的示例代码如下:
using
System
.
IO
;
#
if
UNITY_EDITOR
using
UnityEditor
;
#
endif
using
UnityEngine
;
namespace
QFramework
{
public
class
ReuseMenuItem
:
MonoBehaviour
{
#
if
UNITY_EDITOR
[
MenuItem
(
"QFramework/6.MenuItem 复用"
)
]
private
static
void
MenuClicked
(
)
{
EditorApplication
.
ExecuteMenuItem
(
"QFramework/4.导出 UnityPackage"
)
;
Application
.
OpenURL
(
"file:///"
+
Path
.
Combine
(
Application
.
dataPath
,
"../"
)
)
;
}
#
endif
}
}
代码很简单,主要是第二行,因为我们的 unitypackage 是创建到 Assets 的上一级目录下,所以我们要打开的目录要拼接一个 “../“ ,这个是上一级的意思,使用 Path.Combine 这个 API 可以帮我们自动转换目录。
执行这个示例菜单,执行之后,就会自动导出我们的 unitypackage,并打开了 unitypackage 所在的文件夹。
执行之后结果如图:
是不是很方便? 到此,笔者的导出 UnityPackage 也就是我们的知识库,名字为: QFramework_20181103_05。
那么我们的导出步骤可以更新了。
原来是:
-
点击菜单栏 QFramework/4.导出 UnityPackage。
现在变成了:
-
点击菜单栏 QFramework/6.MenuItem 复用。
这个名字容易造成误导,不过没关系,这只是暂时的方案。我们之后还会改进导出逻辑的。
小结
到此,我们又节省了自己一点时间,假如每次打开文件夹需要 5 秒钟时间。那么 1000 个知识点就会节省 130 块钱。加上第四篇的 390,再加上第三篇的 130 我们总共赚了 650 块。
虽然说得有点夸张,但是从小老师就告诉了我们一个简单的道理:“时间就是金钱”。
转载请注明地址:凉鞋的笔记:
liangxiegame.com
更多内容
-
QFramework 地址: https://github.com/liangxiegame/QFramework
-
QQ 交流群: 623597263
-
Unity 进阶小班 :
-
主要训练内容:
-
框架搭建训练(第一年)
-
跟着案例学 Shader(第一年)
-
副业的孵化(第二年、第三年)
-
权益、授课形式等具体详情请查看 《小班产品手册》 :https://liangxiegame.com/master/intro
-
关注公众号:liangxiegame 获取第一时间更新通知及更多的免费内容。
780

被折叠的 条评论
为什么被折叠?



