千锋教育-做有情怀、有良心、有品质的职业教育机构

当前位置:首页  >  关于学院  >  技术干货  >  Unity技术干货  >  正文

Unity之ASE实现卡通火焰

来源:千锋教育
作者:wjy
关键词: 大连 广州
2022-09-28
分享

  一.前言

  一般我们在游戏中实现火焰特效,都是通过粒子特效,虽然效果好,但是用粒子特效,如果粒子数量过多,会占用大量cpu性能,甚至导致卡顿掉帧。所以我打算用shader实现一个火焰效果,把cpu的压力转移的gpu上去。而且效果更好。

  先看效果:

Unity之ASE实现卡通火焰1

  二.实现逻辑

  实现这个效果主要分为3个部分

  1.实现火焰的波动效果

  通过一个点状图,分别缩放不同大小,交错向上平移,实现火焰的波动效果。

  然后通过一个火焰形状的遮罩图,得到火焰基本形状

Unity之ASE实现卡通火焰2

  2.通过step函数,对火焰进行内焰和外焰的分离上色。得到一个带颜色的火焰。

Unity之ASE实现卡通火焰3

  3.实现一个渐变色,让火焰更加逼真。

Unity之ASE实现卡通火焰4

  三.如何使用

  以上是核心节点逻辑,下面演示如何使用以及用到的资源图片

  1.参数面板

  首先是我们的Inspector面板的参数设定

Unity之ASE实现卡通火焰5

  2.资源图片

  使用的资源如下:

Unity之ASE实现卡通火焰6

Unity之ASE实现卡通火焰7

  四.完整节点图

  下面我们贴上完整节点

Unity之ASE实现卡通火焰8

  五.源码

  最后,贴出我们的源码,方便没有插件的同学可以使用shader

Unity之ASE实现卡通火焰11

Unity之ASE实现卡通火焰12

Unity之ASE实现卡通火焰13

Unity之ASE实现卡通火焰14

  注:本文部分文字和图片来源于网络,如有侵权,请联系删除。版权归原作者所有!

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

相关推荐

  • unity如何接入puerts webpack适用于我们执行ts编译为js用的插件,把需要的依赖加入到dependencies标签中,然后在vscode的终端输入npm install 拉取依赖即可,拉取成功后,会生成一-个node_ modules的文件夹,里面就是我们拉取的依赖库,可能很大,这个文件夹最好加入到忽略列表中。代码如下所示:
  • xlua-framework之UI框架 我们前面说过xlua-framework这个框架,是一个纯lua的一个框架,也就是说我们所有的逻辑都可以在lua中实现,只有资源模块和网络模块是c#原生写的,但是也在lua中给我们包装的工具类,让我们更方便的使用。在框架的纯lua代码中,不得不说,ui框架是我最喜欢的,一套基于mvc的一套ui框架。
  • xlua-framework之网络框架 一般我们说到网络框架,主要是指Socket网络框架,如果是Http的话,我们没有必要单独介绍了,简单用可以直接使用WWW或者UnityWebRequest,如果稍微复杂的使用,可以使用RestSharp库。所以我们本章主要讨论的是xlua-framework框架是如何实现socket网络框架的。
  • Unity-TextMeshPro如何扩展材质实现字体Face+Outline流光效果 TexeMeshPro 是Unity的一个Text文本插件,实现了比UGUI的Text,更好看的效果,跟高效的性能,所以深受大家的喜欢,但是再好的插件,也不是万能的,比如我们的策划有个新需求,要我们的VIP的名字比普通玩家有更好看的效果
  • Unity如何接入Firebase Cloud Message远程推送 本地推送:玩家打开游戏后,给手机系统通知设置推送的倒计时,等游戏关闭后,倒计时结束时,手机会自动打开通知给用户。由于是提前设定死的内容和计时器,所以灵活性差。 远程通知:有一个服务器后台,可以随时随地给玩家发送通知提醒。好处是灵活,但是坏处就是无法根据用户的进度,定制推送内容。所有用户一把抓,走统一逻辑推送。
  • Unity如何实现一个弹框队列管理PopManager 最近游戏中加的弹窗页面有点多,导致快上线时,频繁出现弹窗的问题,不是冲突了,就是出不来,所以我想从根源上解决这个问题。 解决弹窗的问题,需要把握好3点