写注释自动出代码?!在Cocos中试水AI编程工具Copilot,摸鱼神器or失业警告?

去年的某一天,Cocos 的开发者交流群里突然爆发出一阵惊叹,有人直呼“饭碗不保”,有人忧虑版权和保密问题,也有人给出了积极的反馈——

fcfb04c6740b9e3cdf356ff0ba890738.png

>>上下滑动查看更多

大家在讨论的 Copilot 是 OpenAI 与 GitHub 联合推出的一个 AI 自动编程工具,能根据上下文自动生成代码,供编程者参考使用。Copilot 是利用网络中现有的公开数据,尤其是开源在 Github 上的代码,然后基于机器学习算法训练出来的,理论上支持所有编程语言。

Copilot 究竟有多聪明?可以用 Copilot 编写 Cocos 代码吗?让 AI 去写代码是否靠谱?来看 Cocos 布道师热心网友蒋先生、开发者 godxkey、插件 Cocos Inspector 作者 阿chuan 的使用经验与感受。

热心网友蒋先生的 Copilot 使用尝试

申请与接入

Copilot 目前已集成在 VSCode 中,但还处于测试阶段,若想试用需要在 Copilot 官网上进行申请,一般1-2天左右即可通过申请。申请和接入 VSCode 的详细流程可参考 godxkey 的分享:

https://forum.cocos.org/t/topic/133944

那么,Copilot 在实际开发中如何使用?阿chuan 从用 Cocos Creator + TypeScript 编写游戏、以及用 Electron + JavaScript 编写 Cocos 插件两方面进行了尝试,结果很是惊喜:在大部分情况下,Copilot 的 AI 很清楚你要做什么,通常会给出比较满意的建议。

以下是 阿chuan 的分享实录:

Cocos Creator + TypeScript

函数推导

f3150ae13bdbeaa768599d4eff82d9c9.png

可以看到,Copilot 很容易从函数名和上下文中知道你想干什么并且给出建议代码。

接下来我们让 label 变成红色:

09b43be5c406f97f9327089a8498aa11.png

变成透明:

385c1b79a7524a795433744757168952.png

设置文本:

12d37a08eb3228288a42c0a3d45ae279.png

添加触摸事件侦听:

7208d48233a366a5113c933907c3d4bc.png

跳转场景:

7eb1f97dac3a1031b209705aef0eca54.png

跳转场景并添加回调,厉害的是,Copilot 自动建议额外的 Complete 回调:

54a9fe61360211335757e4729935f884.png

计算节点距离,这个就很有用了如果不熟悉 Cocos 相关 API 的同学,只要写好函数名,Copilot 自动帮你找到合适的 API,并给出完整代码:

83d51f80ef44466b08f7779ef5988a36.png

自动找到合适 API 画圆:

d53246ff2c2b31a60898aade39188c5b.png

添加键盘事件:

93a69d6ba64b9d16e56204be86a016b0.png

添加 ScrollView 事件:

8ccf33ee8f663fde074f715c959348f0.png

添加 Slide 事件:

688252ece711690448fb0fa51af5313d.png

注释推导

输入注释://get world pos, 自动给出合适的代码,厉害了:

a3ffcf6668d74011e686b6ed7b3d3b96.png

而根据 godxkey 的测试,中文注释同样可以自动生成代码:

5732b4823e6e3e71e0d164f4d57ce61d.gif

上下文实时建议

刚编写一个 let ani,Copilot 就自动给出了后面的代码:

dad780d7466866c70f434f20ae21ed04.png

然后继续编写 ani.on,又自动给出 ‘finished’事件代码:

faad641b5aa0583ae6a7e91a4aeea33d.png

但是 Copilot 不会提供箭头函数的建议,可能是刚使用,Copilot 还不熟悉我的编程风格。在注释中要求后,Copilot 给出了:

6cc40c41f9e5d47feff833eb0852a093.png

但是,把注释中的 Finish 改成 Last Frame 之后,AI 仍然给出 finished 事件的代码,不知道是 AI 不完善,还是使用时间太短,还需要与开发人员互相磨合与调教。

Electron + JavaScript

最后尝试一下用 Electron + JavaScript 编写 Cocos Inspector 插件。简单的函数推导看起来也还不错:

c20c361891b7bf4be33ce4b946603cd8.png

87ba1f58786e59fa46dca46abc560e66.png

但奇怪的是,可能因为 阿chuan 编写 Cocos Inspector 使用的是 JavaScript,因此在很多情况下 Copilot 并不能有效推导,甚至 AI 对 Electron 似乎也不熟,时常无法给出合理建议。

总结

  • Copilot 并不完美,但是合理调教下,还是可以提供有益的帮助,就像 Copilot 官网所说的一样,似乎有一个 AI 在和你结对编程(Pair Programming)。

  • AI 可能会分析开发者使用的框架,这会降低开发者使用框架的门槛,许多 API 不需要查看文档,直接通过注释或者函数名即可推导出来。

  • Copilot 目前可能对偏强类型语言的分析更加准确,比如 TypeScript、C# 等等。

  • AI 编程的出现,让开发者似乎感觉到了危机,对框架或引擎的熟悉已经不再成为相对新手开发者的绝对优势,所以 阿chuan 觉得,开发者要开始多探索 AI 所不能触及的领域了。

无论如何,Copilot 都是一个能帮助编程者提升效率的工具,但目前它的发展还远远未达到尽善尽美,因此势必不能完全依赖 Copilot。除此之外,随之可能产生的侵权、安全风险等问题也需要大家持续关注。

GitHub Copilot 官网

https://copilot.github.com/

点击文末【阅读原文】前往论坛专贴

https://forum.cocos.org/t/topic/133714

往期精彩

80100803e6a95543c2796db71d286ffd.png

3b316c3e4ec0b18f0f2e327e20bec325.png

507bcebb2cdfe0946ba6b24cfd3b37c6.png04297bd570240016c9f2ebe3ac120b0e.gif

版权声明:本文为博主作者:Cocos 引擎原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/weixin_44053279/article/details/129577947

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2024年1月16日
下一篇 2024年1月16日

相关推荐