Ku双端框架——界面反查代码功能

链接

Cocos商城:Cocos Store
Git地址:Cocos Creator Ku双端框架: Cocos Creator Ku双端框架
论坛地址:
Ku双端框架开源
Ku双端框架——后端热重载与在线更新(不重启修bug)
Ku双端框架——调用C++ 性能提高几十倍

技术背景

  • 当一个项目做大之后,界面非常多。有时候我们都不知道这个界面对应的控制代码或预制体是哪个(特别是这个界面不是自己开发的),因此就需要界面反查代码功能。
  • 在开发环境中,按下ctrl+鼠标左键点击界面,就会有提示对应界面的控制代码是什么,并且自动复制这个控制代码的类名,然后直接ide搜索即可

实现

  • 递归遍历节点,获取点击的节点
  • 对该节点反向遍历父节点,判断父节点上是否有绑定界面控制代码,如果有则复制类名并返回。

视频教程

技术文档

3赞

看起来有实用性,顶

Mark!

赞一个,很多框架只管框架本身,不管用户实际体验的,这种能跟进用户体验的是最好的。
我还记得看过一个框架(名字忘记了),开发者专门在各个流行的IDE里面测试过使用体验,代码完成这些。框架代码本身都有针对这些IDE的体验来做一些优化和调整。这种就特别好。

框架把调用日志弄完善点,看日志不就知道是哪个界面哪个脚本了么:thinking:

大佬啊,太反人性的,团队合作中没几个人做得到。我要求规范也是坚持一会,慢慢就忘记了

就是框架自己打印的呢,不用开发者自己去打印

这么做对于小界面来说没什么,如果一个主界面里面有很多个子界面,子界面又有很多个Item的时候就不好找了,因为他界面一打开的时候,会同时输出好多个脚本出来。还有就是有的界面是预加载的,例如你进入战斗前,会把需要的界面全部事先加载了,那么进入战斗之后,全部界面都输出出来了。

其实我原本是想做成点击游戏界面,自动用ide打开这个界面的类代码文件。这样的话连复制进去全局搜索都不需要了,可惜的是浏览器好像无法随意调用cmd(没想到什么好方法处理)。

没想到什么好方法处理

有是有办法处理的。不过要做IDE的插件。这个对一般框架来说太重了,一般归类到商业软件互相支持的范畴了。不建议做到这个程度。这里只是说明一下确实有办法而已。

框架是这样:IDE A -> IDE A 的插件 <–> 中间层 <—> IDE B 的插件–> IDE B
中间层可以是 socket,HTTP API, 剪切板,文件,进程attach,进程管道,中间服务器转发等,一般用socket比较多,方便发命令,如果是web层上的可以通过HTTP API。
例如:Rider对Unity的支持,也是类似的流程,2个IDE之间互相使用插件,通过中间层连接。

例如现在要实现,在浏览器内,点击游戏内的界面,在vscode上打开这个界面的代码文件的需求。
那么框架就是 :h5 game --> http api —> vscode 插件 --> vscode
首先先做一个vscode的插件,这个插件开一个本地的HTTP API,根据发送的不同命令,对应进行vscode的操作。例如 open path/GameXXXView.ts
然后游戏需要的时候发送命令过去。例如点击某个游戏界面的时候,找到界面名字并且发送。调用http://localhost:4040/openView?path=GameXXXView.ts
如果要做到编辑器里面,也类似的方法就可以了。

中间层的这个我也想到了,确实不太适合做,如果做出来框架使用门槛就高了(要额外配置或者额外插件),所以我想的是最好不依赖任何外部的东西实现这个功能,如果必须依赖其他工具的话,那我还是不集成进去了。