效果如下
要使用到一张自制的png图片(透明背景)作为资源,导入时设置为默认就行。
把这个粒子系统作为角色的子物体,发射跑尘的粒子系统应该在角色脚后的位置。
接下来是粒子系统的配置。
粒子配置
基础属性配置如下
由于是跑尘,所以发射随时间产生需要关闭,而打开随位移产生。
同时要需要让跑尘在生命周期内慢慢变小。
为了让跑尘逐渐消失,我们修改生命周期内颜色变化如下:
发射形状可以按合适的形状配置,这里选用的是矩形,为了让跑尘更加真实,给予随机化方向以及随机化位置一定的数值。
最后是渲染配置
dust这个材质是新建一个材质,然后选择shader为sprite/default,之所以选择这个是因为,对于unity内置的这个shader,可以把粒子系统的颜色信息变化(包括a通道)传入到这个shader中。
我们打开这个shader源码可以看见控制shader颜色的是_Color属性,也就是说如果我们想要让粒子信息的信息传入到自己的shader中,需要提供一个名为_Color的属性作为入口。
题外话
除此之外,粒子系统还提供了自定义的数据传输
可以修改数据形式,让其随时间变化。
然后需要打开渲染器中的自定义顶点流(大概是图形学中的vertex array buffer顶点组缓冲)。
勾选后 点击右下角的加号(图中被菜单挡住了),选择custom,这时就能看到custom1和custome2了,选择自己需要灌入shader中的维度。
选择之后可以看到Unity为其分配的通道TEXCOORD0.Z
也就是说,我们在shader中通过语义:TEXCOORDO获取到信息更多了,在之前TEXCOORD
0一般只有xy被占用了作为uv信息,现在我们给了z维度赋予了自定义的数据。