Shader实现冰冻/解冻效果

发布时间 2024-01-12 14:41:22作者: rain4414

我们在玩游戏的时候都会用到技能,有些技能的效果真的是炫酷的不得了。比如一些雷电效果,冰冻效果。真的是特别炫。在unity里面,我们也是可以做出这些炫酷的效果出来的。我们只要制作一些材质。就能搞定。材质是依托于shader代码的。所以我们要能写一些高端的shader代码,这样,炫酷的效果就能做出来了。今天我们来一个冰冻和解冻的效果。冰冻也是游戏中用的非常频繁的。话不多说,先来看效果。

 

 

这个冰冻的效果看起来没有特别的真实,那是因为我shader的一些参数还没有调节好。大家可以自己去调节下。拿到我的源码后。我们可以从这个demo里面知道,当触发冰冻的时候,我们的机器人是被冻住的,原来是在播放动画的,被冻了以后,整个模型都是被冻住的,动画自然播不了了。然后过一会儿就会解冻,动画重新播放起来。那么我们是怎么做的呢?又改如何实现呢?

首先,我们需要一个特殊的shader,这个shader就是冰冻的shader,然后我们创键一个材质,给这个材质使用特殊的shader,然后当我们按下空格的时候,我们就让模型添加上一个材质,这个材质就是冰冻效果,然后把动画给停掉,怎么停呢,很简单,吧动画的播放速度调成0就可以了,然后启动解冻协程,把冰冻效果解除点,最后再播放动画,这就是整个的逻辑了。上代码:

 

 

 

 

这样我们的冰冻效果就能做出来了。如果要做的更加真实,还需要其他的一些元素。好了,本次的分享到此为止了。