在使用 Cocos Creator 开发项目的过程中,为了提高开发效率我们开发了很多扩展插件,本文介绍常用的几款,抛砖引玉,希望给大家带来帮助。

腾讯开心鼠英语

网页扩展:运行时查看场景节点树

Cocos Creator 本地项目通常会在 Chrome 上调试运行,借助 Chrome 强大的开发者工具,我们可以对网页的性能、网络、脚本逻辑等进行调试优化。然而对于游戏来说,场景中的节点组件信息并没有办法直观的获取和修改,无法快速定位问题。为了解决这个痛点,我们可以修改 Cocos Creator 预览时的网页模版,让其显示更多的场景信息。

下面是修改过后的预览游戏界面


扩展了如下功能:

  • 场景节点树实时显示,节点、组件属性实时显示更改
  • 可视化缓存资源
  • 标记场景中节点位置
  • 输出节点、组件引用到控制台

源码:

https://github.com/potato47/ccc-devtools

此页面使用了 vue + vuetify 开发,对于单页面应用来说 vue 是非常好的选择,大家也可以基于这种方式来定制自己项目的预览界面。

VS Code 扩展:JavaScript 代码支持函数跳转

Cocos Creator 支持 JavaScript 和 TypeScript 两种语言,如果你是用 VS Code 来开发 Cocos Creator 的 js 项目,那你的编程体验应该不是很好,因为 Cocos Creator 的组件脚本是一套自定义的结构,

const mylog = require('mylog');

cc.Class({  properties: {    node1: cc.Node,    node2: cc.Node,    label1: cc.Label,    label2: cc.Label,  },

  start: function() {    this.method1();  },

  method1: function() {    console.log('method1');  },

  method2: function() {    console.log('method2');  },});

在这个结构下,VS Code 不能识别 this,当你在 start 方法里输入 this. 的时候无法准确的获得可以访问的属性和方法,也无法通过点击方法名或者模块名来跳转到定义位置。

好在 VS Code 有丰富的扩展 API,通过学习文档[1],我们开发出了一款让 js 代码支持函数跳转,属性提示的插件。大家可以在 VS Code 插件商店里搜索 “Cocos Creator JS“ 来下载使用。


下面是预览效果:

  • js代码支持函数跳转

  • js代码提示

  • 模块跳转

源码:

https://github.com/potato47/vscode-cocos-creator-js

编辑器扩展:微信小游戏子包依赖检查

得益于 Cocos Creator 优秀的跨平台能力,我们的项目上线了 Android、iOS、Web 和微信小游戏平台。由于微信平台对代码包大小有限制,在上线微信小游戏时我们使用了代码分包功能,但是项目开发过程中有些模块互相耦合,导致分包后主包与子包或者子包之间有依赖,在被依赖包加载前就对其进行导入会导致程序出错。为了解决这个问题我们开发了一款 Creator 插件,可以对子包依赖自动检测。效果如下:


点击检查依赖按钮后,插件会自动检查所有子包间的依赖,并可视化的显示出来,点击文件名定位到脚本位置,根据修改建议修改即可。

源码:

https://github.com/potato47/wx-subpackage-helper

编辑器扩展:快速打开场景

在使用 Cocos Creator 编辑器过程中个人体验最不好的就是资源管理器里的搜索功能了,在 1.x 版本搜索资源时每输入一个字母都会调用一次全局过滤资源的函数,输入过程中就会感觉到持续的卡顿,在 2.x 版本稍微优化了一下体验,改为敲回车再执行过滤函数,但在资源繁多的项目里搜索依然会卡顿。为了解决这个不大但影响心情的问题,我们开发了一款搜索插件,可以快速搜索打开场景或者预制体资源。无需等待,无需鼠标。


源码:

https://github.com/potato47/cocos-creator-quick-open-x

控制台扩展:控制台查看节点树,节点属性

通过 Chrome 的开发者工具我们可以直接对原生平台中 Cocos Creator 的 JavaScript 代码进行远程调试,但一些 UI 相关问题依然不好定位,如果能在控制台里查看节点树就会方便很多。

首先介绍一下 console.groupconsole.groupEnd 这两个函数,它们可以组成一个可以折叠的标签,用于将输出信息分组,console.group 默认展开,相应的还有一个 console.groupCollapsed 默认折叠,显然我们可以用它们输出树形结构。

function tree(node = cc.director.getScene()) {    let style = `color: ${node.parent === null || node.activeInHierarchy ? 'green' : 'grey'};`;    if (node.childrenCount > 0) {        console.groupCollapsed(`%c${node.name}`, style);        node.children.forEach(child => tree(child));        console.groupEnd();    } else {        console.log(`%c${node.name}`, style);    }}

将上述代码粘贴到控制台,然后输入 tree(), 就可以查看当前场景的节点树结构了。


上面的功能还很简陋,经过扩展我们可以获得更多的功能


每个节点后边会附带常见的几个属性和唯一id,通过 cc.cat(id) 即可获得这个节点的引用,提高调试效率。

源码:

https://github.com/potato47/ccc-devtools/blob/master/libs/js/cc-console-utils.js

适用于 Cocos 的 JSC 加解密工具

Cocos Creator 在构建的时候支持对脚本进行加密和压缩。


然而,官方并没有提供一个解压和解密的工具。这给 jsc 的二次修改和重用带来了不便。

本工具弥补了这个不足:提供了与 Cocos Creator 相同的加密、解密、压缩、解压的方法。可以很方便地对构建得到的 jsc 进行解密、解压得到 js ,也可以将 js 压缩、加密回 jsc 。

源码:

https://github.com/OEDx/cocos-jsc-endecryptor

参考

  • Cocos Creator 扩展编辑器文档[2]
  • Cocos Creator 自定义网页预览文档[3]
  • VS Code 插件开发文档[4]

参考资料

[1]

文档: https://code.visualstudio.com/api/language-extensions/programmatic-language-features

[2]

Cocos Creator 扩展编辑器文档: https://docs.cocos.com/creator/manual/zh/extension/

[3]

Cocos Creator 自定义网页预览文档: https://docs.cocos.com/creator/manual/zh/advanced-topics/custom-preview-template.html

[4]

VS Code 插件开发文档: https://code.visualstudio.com/api/get-started/your-first-extension

vscode函数跳转插件_人生苦短,我们为 Cocos Creator 开发的插件和工具相关推荐

  1. pythonarcgis插件_【直播】基于Python开发ArcGIS插件:Python Add-in丨城市数据派

    原标题:[直播]基于Python开发ArcGIS插件:Python Add-in丨城市数据派 Add-in是什么? Add-in(加载项)是一种自定义项(例如工具栏上的工具集合),Add-in可以插入 ...

  2. kubelet配置cni插件_从零开始入门 K8s | 理解 CNI 和 CNI 插件

    原标题:从零开始入门 K8s | 理解 CNI 和 CNI 插件 作者 | 溪恒 阿里巴巴高级技术专家 本文整理自<CNCF x Alibaba 云原生技术公开课>第 26 讲,点击直达课 ...

  3. ajax java 插件_对JQuery中Ajax应用与jQuery插件的理解与笔记

    Ajax有原生的和封装jQuery版的,感觉JQuery的写法比较简洁明了,不需要去兼容浏览器. 1 2 3 4 5 6 7 8 9 10 11 12 $(function(){ 13 $.ajax( ...

  4. 微信小程序点播插件_小程序云直播amp;云点播插件限时降价了!!!

    普惠音视频开发者 小程序·云直播&云点播插件降价啦! 买200TB流量包免1年插件授权费用 小程序直播插件流量费支持资源包抵扣 点播插件免收播放次数费用 限时降价 买赠活动时间:2020年10 ...

  5. 下载蓝盒插件_推荐几款 Chrome m3u8 播放器插件(附下载)

    Posted by 撒得一地 on 2018年10月10日 in Chrome插件 国外稳定加速器推荐 vypr | Nord 之前在 PC 端 Chrome 浏览器上尝试播放 hls 视频地址时,都 ...

  6. java代码规范插件_「Java基础知识」代码规范插件怎么用

    原标题:「Java基础知识」代码规范插件怎么用 在开发中,好的编程风格可以提升团队合作能力,提升开发的效率,但是每个人都有自己的编程习惯,如何能够将大家的编程风格统一,这个在团队中也很重要; 在Jav ...

  7. wordpress登录插件_最受欢迎的WordPress登陆页面插件

    wordpress登录插件 Landing pages are the bread and butter of any successful marketing campaign. They are ...

  8. python调用按键精灵插件_谈一谈火车采集器的插件使用

    ​ 火车采集器.火车浏览器这两款软件大家在平常工作中应该经常使用吧,有数据采集需求和各类公司运营人员想必都亲自使用过这个软件吧! 今天小编就与大家分享下两款软件所支持的插件,并讲解下每款插件的功能.一 ...

  9. phpstom 驼峰插件_推荐四个phpstorm酷炫实用插件 让你写代码的时候不在孤单!

    PHP PHP开发 PHP语言 推荐四个phpstorm酷炫实用插件 让你写代码的时候不在孤单! 程序员写代码很孤独,每天只能和电脑屏幕交流,想要一个程序员鼓励师妹子,老板又不给配,如何让自己写代码的 ...

最新文章

  1. 在后SCI时代需要什么样的人才?
  2. Mycat源码中的单例模式
  3. 转android项目开发 工作日志 2011.10.8--onConfigurationChanged屏幕改变事件
  4. EM算法--应用到三个模型: 高斯混合模型 ,混合朴素贝叶斯模型,因子分析模型...
  5. docker php 安装swoole,swoole(1)使用docker安装swoole环境
  6. matlab边算边出图命令,Matlab:不包含边境和工具栏的figure(移除保存图片的白边)...
  7. 三星手机连接公司内网时需要设置EAP 方式: PEAP
  8. html设置焦点图片,HTML设置焦点
  9. 接私活被公司开除。。
  10. linux 触摸屏在dev的那个目录下,各硬件设备在Linux中的文件名
  11. Django视图层:URL调度器、Django处理一个请求、URLconf在查找什么?URL:①path()路径、②路径转换器Path converter、③正则表达式组re_path()
  12. AFNetWork 学习资源....
  13. 找2个数组中相同的数
  14. php 字符串含有下划线,PHP-我的会话ID中有下划线
  15. 虚拟机中centos7 安装过程中没有自动获取到网络
  16. 说说 JavaEye 网站架构
  17. IMDB 2003 07 12 最新排名
  18. 给定平面上的n个点,求最多有多少个点共线
  19. oracle表空间 online,表空间的ONLINE和OFFLINE状态
  20. 国庆放假前一周,再学这些技术,安安稳稳过假期

热门文章

  1. C#规范整理·语言要素
  2. .NET Core Agent
  3. 使用ML.NET预测纽约出租车费
  4. 微软Azure开源开发者(深圳)峰会等你来
  5. 我是这样入侵 Hacking Team 的
  6. ArcGIS实验教程——实验二十二:空间数据符号化
  7. Visual Studio 2015专业版创建Win32控制台应用程序,C,C++源文件
  8. Android之提示This version of Android Studio cannot open this project, please retry with Android Studio
  9. linux c之perror和exit使用总结
  10. linux之用一张图片说明文件系统结构