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

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

先制作下雨的雨滴涟漪。

步骤1:

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

步骤2:

将ripple材质赋给RippleObj。

修改材质的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改为白色。(改为白色为了使雨滴更加明显一点)

修改后效果:

步骤3:

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

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

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

步骤4:

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

拖动时间轴到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。效果图如下:

步骤5:

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

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

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

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

将脚本赋给RippleObj。

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

步骤7:

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

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

创建一个rippleFX脚本:

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

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

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

涟漪做完了,下一篇继续写雨滴的做法~~

转载于:https://www.cnblogs.com/Sakya00/p/3313359.html

Unity3d中使用自带动画系统制作下雨效果(一)相关推荐

  1. Unity3D中开发2D游戏——动画的制作

    动画的制作其实很简单 如果你是一个整张的素材 类似这种 选择你的素材Born 切换Sprite Mode 为Multiple模式 然后点击Sprite Editor 选择自动切割或者是按规定大小切割 ...

  2. css3中的animation的动画帧制作-卡通人物的走动效果

    css3中的animation的动画帧制作-卡通人物的走动效果 代码如下: <!DOCTYPE html> <html lang="en"> <hea ...

  3. 【Animate】Actionscript3.0脚本制作下雨效果

    [Animate]Actionscript3.0脚本制作下雨效果 1.创建元件 名称设为rain,同时在Actionscript里创建类rain. 形状编辑为长方形代表雨点 2.创建脚本 然后回到场景 ...

  4. Photoshop CS2 视频教程-PS制作下雨效果(转)

    Photoshop CS2 视频教程-PS制作下雨效果(转)[@more@] Photoshop CS2是Photoshop最新版本,也是目前图像处理功能最强大的软件之一.在教程安排上注重由浅入深,循 ...

  5. Unity3D中暂停时的动画及粒子效果实现

    暂停是游戏中经常出现的功能,而Unity3D中对于暂停的处理并不是很理想.一般的做法是将Time.timeScale设置为0.Unity的文档中对于这种情况有以下描述: The scale at wh ...

  6. unity3d学习笔记——老版动画系统的使用

    新的动画系统mechanim相对老版的动画系统,功能强大了不少,但是消耗也不小--需要计算的东西就更多了,所以学习新的动画系统的同时,掌握并使用老版动画系统也是很必要的,虽然老版动画系统相对简单得多, ...

  7. Unity3D 4.x怎样实现动画的Ping Pong效果

    近期在看Unity官方的Stealth项目教学视频.视频使用的是Unity旧的版本号,而我如今正在使用的是Unity 4.5,动画系统的操作全然不同了.依照视频的方式根本无法设置动画的Ping Pin ...

  8. 【Unity3D小技巧】Unity3D中Animation和Animator动画的播放、暂停、倒放控制

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦. 一.前言 ...

  9. Android ProgressBar 加载中界面实现(loading 动画) 实现菊花的效果

    实现的效果图如下: 使用方法ProgressBar ,如果感觉 这个动画不是自己想要的,需要根据ui的图片来实现只需要将xml中的animated-rotate 修改为animation-list 贴 ...

最新文章

  1. Pytorch的默认初始化分布 nn.Embedding.weight初始化分布
  2. java hashmap存取效率_HashMap为什么存取效率那么高?
  3. redhat-problem to be research
  4. 电商系统下单时商品库存和销售状态如何处理
  5. android webview简单使用,android WebView 简单使用Demo
  6. 入门干货:Python操作Word文件经验分享
  7. [Mugeda HTML5技术教程之3] Hello World: 第一个Mugeda动画
  8. jQuery-1.9.1源码分析系列(十) 事件系统——事件体系结构
  9. PHP面向对象之领域模型+数据映射器
  10. 自动化爬虫selenium之键盘操作
  11. python生成所有6位数的数字手机验证码(000000-999999)
  12. 云计算、分布式计算、并行计算、网格计算、集群
  13. SAE 联合乘云至达与谱尼测试携手共同抗疫
  14. Android 如何屏蔽返回键和Home键
  15. 在某软国际的那些日子
  16. mirrors.aliyun.com 无法解析域名
  17. 如何抓取安卓APP日志?
  18. 服务器多网卡多路由策略
  19. NS3仿真之LTE数据分析RSRP,SINR,吞吐量
  20. 神经网络算法应用场景,视觉算法具体是做什么

热门文章

  1. 多核处理器_多核处理器还能走多远?2050年用上1024核CPU
  2. docker和虚拟机的区别_详解win7操作系统下安装部署Docker环境
  3. 数据服务器性能测算依据,如何对服务器性能计算的公式参考(tpmc-tpcc).pdf
  4. js 操作java对象_JavaScript 对象基础
  5. mybatis there is no getter named forInteger
  6. jupyter命令把.ipynb文件转化为.py文件
  7. JNI教程与技术手册
  8. React学习:组件之间的关系、参数传递-学习笔记
  9. 基础练习 字母图形 c语言
  10. 图像浏览界面缩放和平移操作的实现