[zz]使用unity制作雨滴涟漪效果

摘要:
使用自带动画系统制作下雨效果。将图片素材RainStreak及Ripple导入到rainFX文件夹中,创建一个plane,改名为RippleObj,创建一个material,命名为ripple。命名为RainAnimation,保存。使动画有一个透明渐变的效果。到此,涟漪效果制作完成。点击运行,即可出现地上很多涟漪的效果。现在开始使用unity3d的粒子系统制作下落的雨滴步骤1:新建一个粒子系统。调节参数Emission下的Rate,可修改雨滴密度。RotatebySpeed下的AngularVelocity可改变雨滴的下落方向。

之前看了以前版本的unity3d demo AngryBots ,觉得里面的下雨效果不错,刚好前段时间学习了,写出来跟大家分享下,直接开始。

使用自带动画系统制作下雨效果。

先制作下雨的雨滴涟漪

步骤1:

在 project中新建文件夹,命名为rainFX。将图片素材RainStreak及Ripple导入到rainFX文件夹中,创建一个plane,改名 为RippleObj,创建一个material,命名为ripple。(将导入的Ripple贴图的Alpha from Grayscale 打上勾,以使贴图的背景透明)

步骤2:

将ripple材质赋给RippleObj。

[zz]使用unity制作雨滴涟漪效果第1张

修 改材质的Shader为Particles/Addtive,将Ripple贴图赋给ripple材质的Texture,在inspector窗口中修改 Particle Texture,Tilling的x值设为0.1666,y为1,offset的x为0.8333,y为0。选中RippleObj,将Shader下的 Tint Color改为白色。(改为白色为了使雨滴更加明显一点)

[zz]使用unity制作雨滴涟漪效果第2张

修改后效果:

[zz]使用unity制作雨滴涟漪效果第3张

步骤3:

选中RippleObj,按Ctrl+6,调出Animation窗口,点击窗口下的Ripple(material),会发现下面都是灰色不可选状态。

[zz]使用unity制作雨滴涟漪效果第4张

点击RippleObj右边的一个小按钮,会出现[Create New Clip],点击。此时Ripple(Material)下的选项都已可用。

[zz]使用unity制作雨滴涟漪效果第5张

点击后会出现下面的对话框,提示保存动画文件。命名为RainAnimation,保存。

[zz]使用unity制作雨滴涟漪效果第6张

步骤4:

选择Ripple(Material)下的Main Tex.offset.x,点击右边的小横线->Addkey。

[zz]使用unity制作雨滴涟漪效果第7张

拖动时间轴到0.05,再次Addkey,修改offset.x为0.1666。分别在0帧Addkey,offset.x为0,0.05帧 Addkey,offset.x为0.1666,0.1帧Addkey,offset.x为0.3333,0.15帧Addkey,offset.x为 0.5,0.2帧Addkey,offset.x为0.6666,0.25帧Addkey,offset.x为0.8333。效果图如下:

[zz]使用unity制作雨滴涟漪效果第8张

步骤5:

此时的Animation窗口中有一条从0.0—0.25的红色斜线,用鼠标框选六个关键帧,右键—>Both Tangents—>Constant(右键需在红色的关键点上点击)。此时斜线被改为梯形上升的线。选择Tint Color.a,在0.0帧修改Tint Color.a为1,0.25帧即最后一帧设置Tint Color.a为0。使动画有一个透明渐变的效果。

[zz]使用unity制作雨滴涟漪效果第9张

[zz]使用unity制作雨滴涟漪效果第10张

[zz]使用unity制作雨滴涟漪效果第11张

到此,涟漪效果制作完成。

步骤6:开始添加脚本,控制涟漪的消失,脚本名:RippleDestroy。

1
2
3
4
5
6
7
8
9
10
using UnityEngine;
using System.Collections;
public class RippleDestroy : MonoBehaviour
{
public void DestroyMe()
{
Destroy(gameObject); //删除自身
}
}

将脚本赋给RippleObj。

在Animation窗口中,最后一帧即0.25帧处,点击右边的Add Event按钮,在0.25帧添加一个事件并将DestroyMe()赋给Function。

[zz]使用unity制作雨滴涟漪效果第12张

[zz]使用unity制作雨滴涟漪效果第13张

步骤7:

将RippleObj拖到rainFX文件夹中,使之成为一个prefab。然后可以将场景中的RippleObj删掉。

[zz]使用unity制作雨滴涟漪效果第14张

创建一个空物体。GameObject—>Create Empty。改名为ripple,此时场景中只有Main Camera,ripple。

创建一个rippleFX脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using UnityEngine;
using System.Collections;
public class rippleFX : MonoBehaviour
{
public GameObject rippleObj; //涟漪实例
int ti; //计时器
void Start ()
{
}
void Update ()
{
ti++;
if(ti>=5) //每隔5帧,计时器发生作用
{
GameObject tempObj=Instantiate(rippleObj) as GameObject; //复制涟漪物体
tempObj.transform.parent=gameObject.transform; //设置子物体
tempObj.animation.Play(); //播放动画文件
tempObj.transform.position=transform.position+newVector3(Random.Range(10,-10),0,Random.Range(10,-10));//移动涟漪物体到一个随机位置
}
}
}

将rippleFX脚本赋给空物体ripple,再将prefab物体RippleObj赋给ripple的脚本的变量RippleObj即可。

[zz]使用unity制作雨滴涟漪效果第15张

点击运行,即可出现地上很多涟漪的效果。

[zz]使用unity制作雨滴涟漪效果第16张

下雨效果分两部分:地上的涟漪和空中的雨滴。

现在开始使用unity3d的粒子系统制作下落的雨滴

步骤1:

新建一个粒子系统。

GameObject—>Create other—>Particle System。改名为raindrop。

[zz]使用unity制作雨滴涟漪效果第17张

步骤2:

新建一个材质(material),改名为跟贴图一样的名称RainStreak,修改材质的Shader为Particles/Addtive。

[zz]使用unity制作雨滴涟漪效果第18张

[zz]使用unity制作雨滴涟漪效果第19张

将贴图RainStreak赋给材质,修改Tiling的x为8。

[zz]使用unity制作雨滴涟漪效果第20张

[zz]使用unity制作雨滴涟漪效果第21张

修改RainStreak贴图的Wrap Mode为clamp(8为使贴图在单位面积上显示8个,即使单个贴图的面积变小,然后修改Wrap Mode为clamp即使粒子系统中显示的粒子为变小后的单个贴图)。

[zz]使用unity制作雨滴涟漪效果第22张

步骤3:

将RainStreak的Material赋给粒子系统的Render下面的Material。

[zz]使用unity制作雨滴涟漪效果第23张

此时粒子系统中显示的即为雨滴的贴图。

[zz]使用unity制作雨滴涟漪效果第24张

步骤4:

修改粒子系统的Shape,使之变为圆柱形。

[zz]使用unity制作雨滴涟漪效果第25张

调节参数Emission下的Rate,可修改雨滴密度。

[zz]使用unity制作雨滴涟漪效果第26张

Rotate by Speed下的Angular Velocity可改变雨滴的下落方向。

[zz]使用unity制作雨滴涟漪效果第27张

调节各个参数完毕后,即可达到最终效果(多调下参数,以便达到更好的效果)。

[zz]使用unity制作雨滴涟漪效果第28张

到此,下雨效果完成(这里的效果看起来比较糙...)。

另外,可以把所用到的材质、贴图、脚本等资源全部放到rainFX文件夹中,方便以后使用的时候直接拿过来用就可以了~~

我把素材及工程源文件上传到网盘,童鞋们可以下载来看看~~

[zz]使用unity制作雨滴涟漪效果第17张

[zz]使用unity制作雨滴涟漪效果第18张

[zz]使用unity制作雨滴涟漪效果第19张

[zz]使用unity制作雨滴涟漪效果第20张

[zz]使用unity制作雨滴涟漪效果第21张

[zz]使用unity制作雨滴涟漪效果第22张

[zz]使用unity制作雨滴涟漪效果第23张

[zz]使用unity制作雨滴涟漪效果第24张

[zz]使用unity制作雨滴涟漪效果第25张

[zz]使用unity制作雨滴涟漪效果第26张

[zz]使用unity制作雨滴涟漪效果第27张

[zz]使用unity制作雨滴涟漪效果第28张

http://pan.baidu.com/share/link?shareid=522605416&uk=3761044284

免责声明:文章转载自《[zz]使用unity制作雨滴涟漪效果》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C# WinForm获取当前路径汇总开源库CImg 数据格式存储下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

External Tools

Preferences偏好设置-External Tools External Tools:     External Script Editor:外部脚本编辑器,通过此项可以切换您所擅用的脚本的编辑器     Editor Script Editor Args:     MonoDevelop Solution Properties:unity...

关于Unity的C#基础学习(四)

一、数组 存放同种类型的一组数据,同类+多个 1.定义 int [] int_set; int_set=new int[10];  //在堆上分配出10个int,int_set是数组的引用变量,指向10个int大小的内存空间。new 类型[容量] 2.访问 数组引用变量名称[索引],int_set[0]=0,int_set[1]=1,int_set[1]=...

[Shader]Unity裁剪四方形Image为圆形

<1>新建材质球和shader,shader请在官方下载内置shader(UI)      效果:      思路:               裁剪成圆,那就剔除大于圆半径的像素,很鸡儿简单     代码:              定义圆形半径 _Radius("半径",Range(0-0.5))=0.5              frag...

Unity中AndroidManifest增加权限,打开应用时不弹出权限申请

一 屏蔽第一次打开apk时权限弹窗: 在Activity下添加<meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="true" />。 二 在需要权限的位置再请求权限: unity端: usingUnityEngine; #if UNITY_AN...

Unity中的半透明阴影

在Unity中渲染半透明阴影可以使用Unity提供的dither texture。在这之前,先考虑一般半透明物体的渲染流程: 设置render queue为Transparent,这样不透明的物体会先渲染,然后位于被不透明物体遮挡的透明物体就可以不必渲染,减少开销 设置render type为Transparent,便于一些replacement操作 设...

unity 2d 和 NGUI layer

http://blog.csdn.net/xtxy/article/details/37876825 在使用unity2d开发游戏的时候,使用了NGUI作为界面,本来二者配合得还挺好,但是一个使用场景出现了问题,就是一个ngui的sprite需要放置在unity2d sprite后面显示,也就是用ngui得sprite作为背景,结果发现替换sprite的a...