Unity知识记录 您所在的位置:网站首页 枪的材质 Unity知识记录

Unity知识记录

2024-07-16 12:45| 来源: 网络整理| 查看: 265

本篇我们来制作枪口火焰,每次子弹发射都会有一个特效。

我们先把特效的图片导入到项目中,这里自己选一个图就好了,官方的素材是一个灰度图。这个枪口特效主要给自己看的,用2D的就好了。

导入后要进行图片设置,这里要利用图片的灰度,作为图片的Alpha值,同时Alpha值控制透明度。

然后我们创建一个材质,命名为MuzzleFlash,用来控制这个图片渲染的颜色。

打开我们创建好的材质,选择我们的Shader,这里使用URP的非光照即可,枪口的火焰不用参与光照的计算。【项目已升级URP】

换好后,我们调整设置,Surface Type来控制表面渲染,Blending Mode混合模式(看最后效果即可),Render Face是图片双面渲染,颜色模式的乘法。Base Map是贴图,Emission控制特效发出的光。这里我们需要叠加的混合模式,双面渲染,以及颜色相乘。

我们创建一个空的Prefab,将特效的内容放到Prefab中,每次开枪实例化即可。

给这个Prefab添加Particle System组件,找到Renderer,将创建好的材质进行赋值。

如果你的是紫色的,可能没有使用URP作为渲染管线,参考下面的专栏进行升级后即可正常显示。

接下来开始设置Particle System的属性,开始之前要想明白我们需要的枪口火焰效果是怎样的。

通过观察,发现这个枪口的特效是一瞬间出现两个图片,同时有一个随机角度的旋转,同时存在的时间也很短,而且这个特效是使用一次后就消失的。

我们调整最开始的两个参数,Duration,Looping;Duration表示我们整个特效播放一次需要多少时间,Looping表示特效是否重复。这里我们需要Duration为0.1,同时不开启循环来模拟枪口的火焰。

接下来是启动延迟Start Delay,启动后特效粒子存在初始的时间Start Lifetime,启动后特效粒子的初始速度Start Speed。我们的枪口火焰,需要特效立刻产生,同时不需要特效产生移动,以及特效存在很短的时间。

为了便于观察,可以先勾选上Looping,这样可以看到效果,完成后取消勾选。

我们先不要纠结这个点不在原点产生,我们先解决图片初始大小和旋转的随机。通过点击旁边的小箭头,可以打开选择菜单,选择传入的参数形式,这里我们需要随机的选择和大小,选择在两个固定值之间随机即可。

大小是0.3-1,旋转是0-360之间进行随机。

然后是Start Color可以设置特效粒子初始颜色,可以设置为自己喜欢的颜色。

剩下的我们暂时不用动,来到Emission的部分,这是控制特效粒子生成数量的地方。这个参数很简单,Rate Over Time表示1秒生成多少个特效粒子;Rate Over Distance表示每一个单位长度生产多少个特效粒子。

我们需要的是一开始生成两个特效粒子,我们用Bursts的方式来创建,这个方法是可以在某一特定时刻创建多少粒子,同一时刻可以有多个创建方式存在,调整概率。这里我们只需要在0秒时创建2个即可,同时不重复。

接下来,是我们的Shape,这里可以控制我们粒子产生的一个分布,这里可以控制特效粒子初始点。

首先第一个变量是Shape,这个决定了特效按照一个什么形状进行随机发射。这里可以将特效粒子的存在时间放长,选择不同的Shape来观察效果。这里我们模拟枪口,选择Circle即可。

我们缩小半径,其他的参数不动。

此时我们的特效初始位置就固定在了枪口上。

接下来添加一个渐变的效果,枪口火光呈现逐渐变暗的效果。勾选Color over lifetime,这个可以让颜色跟随时间发生变化,我们主要为让特效变得逐渐透明。

点开这个颜色,将右上角的透明度调整为0即可。

最后得到的枪口火焰效果如下(目前勾选了Looping,制作完成后记得取消)。

接下来,我们要开始实例化枪口的火焰,这里可以赋值几个Prefab调整为不同颜色的枪口火焰。

彩紫睨羽



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有