说几个痛点:
1.打包构建的包没有工作流,直接出node_mudule文件夹,用户下载完提交到git全给过滤了,本来几M的包一下子变成几百M
2.代码加密混淆,上传商店前还要费力去做加密,要不然不敢发上去卖
3.ui调试很痛苦,改行代码每次都要重启编辑器,和场景交互的脚本,普通编辑(这里的vue界面可能只要重新构建脚本打开一下就可以,但是不确定哪些可以哪些不可以的情况下,大部分都是重启)因为不确定到底会不会生效的情况下,为了防止不生效,大概率会选择最保险的做法,重启,漫长的等待
4.消息调用没有封装,特别麻烦,希望可以直接通过代码的方式进行调用,还有很多的隐藏api,要不停的测试,测试过程又特别痛苦,而不是每个都要打开消息面板去查找,附上我的封装editor_warp.rar (8.1 KB)
5.消息支持有些地方可以,有些不行,比如场景内脚本,编辑器右键,资源操作,发消息的预期结果不确定
6.ui界面开发能够快速接入vue组件,(我理解应该是这次解决的问题)
7.目前功能和编辑器本身的契合度太低,很难扩展编辑器本身功能,比如要添加一些节点边框,相机预览常驻,下拉定制,批量操作等功能都特别费劲,只能做一些边角料的扩展,或者脱离编辑器相关功能
确实如此。但是目前架构就这样了,也只能屎山上做优化了,我每次开发插件都想跳楼,一个menu都要先配置,都不能动态增加。
如果想变成unity那样,估计要放弃web开发架构,direct ui才是方向。实在不行真的可以参考laya 3.0
希望简化一下,拜托了
能不能在编辑器里面直接拼插件界面
随便挖一下以前的一个帖子,以前提过下
到目前为止,我也还没有想到什么好办法,解决这个问题
配置复杂在什么地方? 对于 vite构建,如果不熟悉的人,我们确实不能指望通过我们的模板让他熟悉 vite 的用法。
但是对于一个想要开发编辑器拓展,特别是有面板需求的开发者,那么他首先就应该了解web 开发,我们只是抛砖引玉的给出一个实践方案,“如何享受vite 的高效构建,又可以享受 vue react 等的丰富生态”
而我们的插件,对于一个 常规的 vite 项目来说,只是增加了一个 plugs 的配置,其他都不是我们带来的配置项。
我们之所以写的那么详细,从现状,到遇到的问题,到解决思路。其实是有抛砖引玉的目的,比如某些开发者更喜欢 webpack,那么他就可以根据思路实现自己的webpack 构建插件。
还有最后一点,我习惯性的把github 当免费图传,也确实默认需要开发插件的开发者是高阶用户。否则引擎组的同学回复一些PR的连接,是不是也要改成 码云?
无论如何,感谢推荐你自己写的cc-plugin,我有空也会去看看。
我最后的办法,也是合并插件
但是,这只是因为是自己用,如果要提供给外面,还真不知道有什么办法
我这边的做法是每个插件注册用于构建操作的消息,
然后构建插件这么写
export const onAfterBuild: BuildHook.onAfterBuild = async function(options: ITaskOptions, result: IBuildResult) {
let tinypngImageCompressPackageInfo = Editor.Package.getPackages({name: “tinypng-image-compress”});
if (tinypngImageCompressPackageInfo.length > 0 && tinypngImageCompressPackageInfo[0].enable) {
let tinypngImageCompressTask = new TinypngImageCompressTask();
await tinypngImageCompressTask.onAfterBuild(options, result);
}
let assetEncryptPackageInfo = Editor.Package.getPackages({name: “asset-encrypt”});
if (assetEncryptPackageInfo.length > 0 && assetEncryptPackageInfo[0].enable) {
let assetEncryptPackageInfo = new AssetEncryptTask();
await assetEncryptPackageInfo.onAfterBuild(options, result, PACKAGE_NAME);
}
}
tinypngImageCompressTask.onAfterBuild 的处理就是向插件请求消息比如
await Editor.Message.request(“tinypng-image-compress”, ‘buildCompress’);
也就是你自己还要 「单独再开发一个插件」 去管理 「不同厂商」 的插件的执行顺序
大家看一下楼主的视频,虽然写了很长但是其实就打开终端输入几条命令,我照着弄了一下感觉已经是目前插件系统环境下很好用的了,如果会vue更是如虎添翼
嗯嗯,我写那么详细其实是让大家知道是如何思考与设计的。 很多人根本不试用,就觉得复杂。
是的·只能自己定义执行顺序了
我选择放弃,哈哈
哈哈·只有等待引擎组看什么时候可以配置插件的执行顺序了
我明白你的诉求了,目前确实是不支持指定顺序,不过我后期可以去研究下 vite 的插件机制,因为它有一定的排序规则。
vite 的插件机制比较好做排序是因为在配置文件里 直接就声明好,没有动态加载的情况。
无论如何,我们会研究一下,看下是否有比较好的解决方案。
终于有篇讲3.x插件开发的,先回复后看
这个包安装了没有npm install一下