CocosCreator之KUOKUO教你使用大佬们写的Shader

本次引擎2.1.0

编辑工具VSCode

 

注意,一代CocosCreator和2代的相关接口有不同。

我使用的是General大佬的2代Shader,给出链接:

下载链接

 

好,下载完成之后,我们解压,进入Shader文件夹;

这4个ts脚本就是。

好,我新建个工程,单色精灵调黑色的背景。

再弄张图片上去(我随便画了一个):

好了,重点来了,我们在工程文件夹里新建个Shader文件夹,并把那四个ts脚本拷贝过来。

注意这个ShaderComponent就是使用的脚本组件。

我们来试一试:

Shader要用在Sprite也就是精灵组件上。

然后就可以选择了,General大佬给出了很多特效,我最喜欢最后一个。

我们看一下效果(其实是动态的流光效果):

我们看一下ICE冰雪效果:

这个还是蛮直观的。

好了,接下来我带大家简单分析分析脚本(不是彻底分析):

首先,因为我们是把ShaderComponent拖过去的,我们先看一下它。

找到start()函数:

this._applyShader()这个方法就是设置Shader的;

设置后在update中不断的更新纹理。

如果把这句话注释掉呢?

哈哈,没效果呗!(滑稽)

好了,这样我们就找到了开启的地方。

给个按钮就可以控制开启。

在start()下面来个给按钮用到方法;

点击一下,开启。

好了,开启知道了,怎么暂停呢?给个偷懒方法:更新纹理为空!

在update中有判断,如果为空,return;

我们在update()上边写个点击暂停方法;

冰雪特效是静态的,我们拿流光特效试一试:

成功!!!

好了,那么我们可不可以自由的在代码里切换Shader呢??

当然可以!

在ShaderManager.ts中有着Shader列表,这与我们选择菜单是对应的。

(用Vscode打开可能报两个类型不匹配的错,不用管)

然后其实是在ShaderComponent脚本中这里得到:

然后在开启加载Shader纹理时(也就是刚才用的那个点击开启方法里的this._applyShader())

我给出箭头:

第一个是获取对应Shader;

第二个是加载对应Shader的纹理;

我们想自由切换怎么办?

我这里使用了切换下标的方法。

把Shader放数组,给个下标参数:

这样,我们给上边的方法加上下标就可以了;

0是默认无效果:

然后点击后是数组里下标为15的特效:

嗯,这样就可以靠下标自由切换了。

好了,小伙伴们快去试一试吧!

O(∩_∩)O~~

感谢General大佬的分享!

加我QQ群:(博客里面的项目,群文件里都有哦)

706176551

我们一起学习!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
回答: 在Cocos Creator中,常用的设计模式包括子弹工厂模式、单例模式和建造者模式。子弹工厂模式是通过工厂来创建子弹节点,根据提供的子弹种类、速度和方向来自动创建子弹节点并返回,实现了代码的精简和灵活性。\[1\]单例模式用于创建一个全局唯一的实例,可以在整个应用程序中共享和访问该实例,避免了多次实例化的问题。\[2\]建造者模式用于创建复杂的对象,通过将对象的构建过程分解为多个步骤,使得对象的构建更加灵活和可扩展。\[3\]这些设计模式在Cocos Creator中可以帮助开发者更好地组织和管理代码,提高开发效率和代码质量。 #### 引用[.reference_title] - *1* [CocosCreator进阶实战第四部分:工厂模式](https://blog.csdn.net/kuokuo666/article/details/103722679)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [设计模式---创建型模式(工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式)](https://blog.csdn.net/sinat_36499762/article/details/115624011)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KUOKUO众享

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值