吐槽一下插件开发的心路历程给官方的各位大大们看看

    最近使用CocosCreator开发了一个在线h5小游戏,纯粹练练手用。但也使用到了引擎提供的大部分功能。由于之前

是作cocos2dx-lua开发的,对这个编辑器提供给h5开发者的便利性很羡慕,可惜目前完全无法提供给-lua的开发者使用。
不要跟我说那个creator-luacpp-support插件,我认为那基本就是个渣渣,仅仅支持导出.fire文件上引擎支持的组件上绑定
的数据,只靠这个导出是做不出来游戏的。我想官方的意思应该是提供给我们作为参考,起示范使用,让开发者来扩展出
更好用的插件来解决这个问题。

   所以我解决这个总是的动力就有了,但是绕了一圈发现,我的方案是可行的。但是官方提供的那些接口支持,可以让

你死三回了,要什么没什么,大家看看这个API上的接口你能搞懂吗?
http://docs.cocos2d-x.org/creator/api/zh/editor/share/editor.html。
我目前完成的功能中使用到的接口很多是在代码中通过console.log打印出对象后,看它里面有什么接口,什么类型的参
数,再去一个个试着用,看是否满足要求。真是够累的。于是 我想到找线上别人是否写过类似的插件,这不找还好,一找
更要凉凉了,请问官方的人你有勇气去看看插件 商店 里面的那些插件吗? 你认为那是插件吗? 总共23个插件 只有2个是
与编辑器编辑功能和游戏调试有紧密联系的,其它的都是辅助工具而已,之所以说它是工具是因为 这些并非要放在cocos
creator里面用插件来做吧,我想用脚本语言更好实现了,还能做的更好。

   那么 为什么真正的插件为什么这么少? 我认为和我的感受是一样的。
  1. 官方的支持太弱了,文档接口 说明真的太不详细了,不说详细吧,你起码多介绍几句总行吧,不论英文的还是中文的。
  2. 遇到总是后,在论坛里面的帮助也是少。 我认为可以 设一个插件专区,好用的插件能够带来的开发效率提升是很大
    的,从UNITY的插件商店起的作用可以看出来。
  3. 哪怕插件商店不能发展壮大,起码让开发者能自己开发出更适合自己项目的插件也是有利于引擎的发展。

最后希望Cocos creator的大大,能帮忙看看我在开发上面这个插件中碰到的一个很困扰的问题:
https://forum.cocos.com/t/fire-prefab/69468

我解决这个问题的思路:希望能在插件中根据当前节点找到根节点的uuid, 然后就能间接获取一它对应的文件路径了(Editor.assetdb.remote.uuidToUrl)

或者还有其它更好的办法,希望官方的大大能提供下思路。

3赞

+1,深有同感,开发插件时调试只能打log输出看接口。而且插件上传商店后一直显示在审核,一点反馈都没有。心凉。

先逐个回下:
1.导出creator工程提供给2d-lua使用的插件只是一个过渡的工具,用于对原有老项目的支持。新项目不建议继续使用lua进行开发,同时我们希望有能力的话尽量将项目往creator上移植。毕竟creator相比原有的cocos lua更加强大以及方便。
2.目前官方在插件开发方面的文档和api确实做的不好,这个锅要接,这也是一直因为人力的问题。目前我们也在积极补充人手,后续会持续完善这一块的资料。
3.获取正在编辑的文件路径这个问题我下去看一下,有结果的话给你回复

最后,感谢你的吐槽以及建议!

顶!api文档确实很不全,希望完善

问个题外话,有获取当前节点根节点的API吗?

Editor.currentSceneUuid 这个变量存储的就是当前打开的场景~

打开的场景我可以通过scene:query-hierarchy 这个事件获取到,但是如果当前打开 的是一个prefab,那么 这个事件获取到的结果就是错误的,而且获取的数据每次都在改变。。。真是SHIT一样的结果。

就是没有啊。当前节点的信息只能通过 scene:query-node 这个事件获取,但是给出的信息太少了。。。我想要的完全没有。

首先感谢你的回复,至少让人看到还有人在关注这个论坛。

  1. 的确creator比原来的框架更加强大及方便,但是我的初衷是把二者结合,利用creator的编辑器的优点来为lua服务。
    2.这块的资料建议补完整一些,建议按https://docs.cocos.com/creator/manual/zh/extension/reference/ipc-reference.html
    这个里面的来写API,最重要的是完整一些,可用的消息应该不只这么一些,但是其它的要去哪找?
  2. 麻烦能够改善一下 scene:query-node 这个消息的结果,如果编辑的是一个prefab,那么 给出的结果就是不对的,而且一直在变。根本没法用。

麻烦官方人员回复 下,有没有办法解决这个问题, 这个问题绕不开,现在等米下锅呢?

稍等一下,马上回复

Editor.remote.currentSceneUuid通过这个可以拿到编辑中的scene,但当前编辑中的prefab话目前没有提供接口获取

额。。。。我就是需要获取当前编辑的prefab文件的uuid或url. 这可怎么办,我的插件其它部分都进行的很顺利,就差这块绕不过去了。

离开论坛一段时间,看来creator 招新人了,加油加油

监听构建过程,比如:function onBuildFinished(options, callback) {} 回调的options.project 就表示 当前插件项目位置路径

你好像没看清题意。

插件的开发真是伤神,api一点都不全

纯吐槽:写一个插件,写之前考虑好要写一个怎么样的功能。然后开始写,查资料,查接口。发现这个接口找不到,这个方式不支持。想看看某些东西具体的支持,比如 Editor.ipc 下面有哪些接口,查了半天没找到。只在官方例子里面找到 open send close 之类的示例:joy:。。。

真的很吐血,就想开发个批量修改prefab的插件,查了半天,这个没有 ,那个不支持,主要是说明也少,查到的东西还要一个一个的试,有些 接口 又不能在主函数用,有些接口又要在scene-walker用不了,试得头皮发麻

我已经从开发插件转到用electron开发应用去解决了。插件局限性太大,不论是文档还是生态

1赞