环境cocos creator2.4.13
需求,不太会写shader,但又要用最小的资源实现一个渐变色的背景,于是就求助于AI。
下面是和豆包的沟通过程:

第一问它就回错了,没有给定豆包环境,再问:

根据它给出来的代码,新建一个test.effect文件:
再建一个material文件,名称为 test.mtl,并将其effect属性引入上面的test.effect文件;
使用, 在需要渐变的节点中添加cc.Sprite组件,并修改其material为test.mtl;
准备好上述文件后,打开编辑器,刷屏式报出如下错误:
TypeError: Cannot read property ‘type’ of undefined

上面的回答,基本没什么用。直到我将引擎的源码找出来,并贴给它。

它才明白是let prop = properties[name];这一段赋值后,在后面使用prop时,没有检查空对象的原因。
手动添加了一个判空检查,编辑器不报错了,但是在运行时,却发现预览是正常的渐变色,但实际显示确是纯白色。
又一顿与豆包的沟通:

按照它给出的方法,一顿操作,但还是没有解决问题。
卡在这里了,怎么办。
后来是无意中将代码还原,重新上面的操作后,发现居然成功了。在对比操作方法后,发现是在新建cc.Sprite这里有区别,这里必须要带一张足够大的图,才能将想要的渐变色渲染出来。
以上就是第一个解决方法,需要修改底层的引擎代码,并不太方便。
怎么办,先还原对引擎源码的修改,找出来是哪个属性报的空,发现是shader的代码中要有texture这个属性;
于是又和豆包沟通:

更新test.effect内容后,也能成功的显示渐变色。至此,使用豆包帮创建一个可用的渐变色材质的工作完成。
总结:豆包AI能帮编写这种比较陌生并且复杂的shader语法,但在实际运行中遇到的问题,往往只能给出比较宽泛的回答。还是需要人为介入查找出来原因来,它是一个比较好用的辅助。
(遇到的问题我写出来,具体的代码我就不贴了,有需要的自己找ai去生产)
