[20?? 天坑] SSRBoltEditor 可视化脚本编辑器

About / 关于

这篇文章只是介绍一个最近两天做的有趣的东西,当然,也许它也会像之前发的

一样,在很多很多很多年以后,正式完成上线,那也说不定,不过显然,这个坑比上面那个,要深的多 ( 也许已经挖穿了也不一定 :rofl: )

Beginning / 起源

这个东西的起源,应该是 ShaderEditor 或者更加准确的说, 是它所呈现的操作方式。之前在论坛发帖后,很多人都说在 ShaderEditor 中看到了蓝图的感觉。可怜自己见识少,只用过 cocos 系列,当初并不知道这指的是什么意思。

后来才明白,这说的是 Unreal 里面的蓝图,之后 Unity3D 也有类似的 Bolt 出现。都是可视化编程的工具。

看过一些关于 Bolt 视频的帖子后,发现这个很有意思, 于是也就尝试了一下,当然立刻就放弃了,这东西说实话是真不好搞。于是就又继续开发 ShaderEditor 去了。

Retry / 再尝试

ShaderEditor 趋于成熟后,又做了一些插件,同时还将 ShaderEditor 中类似蓝图操作的系统框架进行了整理抽象,上架了 CocosStore。

有了十几款插件的洗礼,对 Creator 插件系统开始有了一些认识,开发的方式也越来越熟练。

于是就有了再次挑战的想法 :2:

Achievement / 成就

设计这样一个插件,显然要考虑的东西是无数的,可能存在问题也是无数的。

不过对于起点来说,个人的习惯是,先做个很简单的 prototype,如果能大致有那么个味道,那么也许还能继续往下走。

也许确实是有了之前的经验积累,加上这次的切入点和设计方式比较合理,进展相当的顺利,两个晚上的时间,就有了一个 很有趣的,可以把玩把玩的版本。

Flag / 插个旗

从上面的视频中可以看到,还是有那么点味道的,通过可视化编辑器的驱动,不写一行代码,做出一些有趣的效果。同时借助 Creator 的 ts 特性,还能实时的看到生成的代码,也许还能进行双向的修改编辑???

想做的点当然有很多很多,不过其实暂时只是想挑战做个 prototype 而已,想要做成品,要考虑的东西还有太多太多。

但是也许哪天心血来潮,和之前的 ShaderEditor 一样,也不一定。

主要现在也不像以前有那么多空余的时间了,还是先放着吧 ~~~


发了这么长的帖子,录了这么长的视频,其实只是想问一个问题:

Creaetor v3.x 的插件系统中,如何能够获取到 [添加组件/删除组件] 的消息?

我已经查阅了文档,尝试了 [Messages] 调试工具 (没看到有合适的 Broadcast 事件可用 ) ,但是还是无法找到解决方案。v2.x 中的:

scene:add-component
scene:node-component-added

也都不好使,如果有知道的朋友希望能指点下,多谢了 :test: :test: :test:

6赞

这是我见过最牛逼的问问题的方式,大佬就是大佬

真牛蛙,公众号看到,赶紧过来顶贴 :2: :2:

太牛了,我都看不懂

太牛了,我都看不懂

202x年 等你

引擎方面是没有addComponent事件,我原来提过这个问题,但可以自己模拟了。

let addComponentFunc: Function = this.node.addComponent;

            this.node.addComponent = (...args) => {

                let component = addComponentFunc.call(this.node, ...args);

                this.node.emit("addComponent", component);

                return component;

            }

            this.node.on("addComponent", this.onAddComponent, this);
1赞

这种hack的写法,一个字:
image
不过算是无奈之举吧

请教下大佬,为什么在插件的scene里无法取得项目设置的物理分组?
有没有什么办法能取到?

我去,这是蓝图?

差不多是这个意思

从视频里发现了新大陆,原来做插件可以这样做,先用cocos做功能,然后发布出web版,最后再嵌套进cocos插件系统里。大佬就是大佬,总能让我学到东西

这个我也没搞过,不是很清楚,不好意思啊 :rofl:

因为我不会 vue / react,调个 html + css 也要我老命 ~

现在习惯了这种视频中这种工作流,还是很方便的,插件系统和嵌入的系统之间的交互也没有任何问题,只是 dock 不完满,很可惜,暂时解决不了,不过也足够用了 :test:

果然HTML/CSS是大家的硬伤,好在还有svg, canvas的备选项

tql