Unity3d中使用自带动画系统制作下雨效果(一)
之前看了以前版本的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中使用自带动画系统制作下雨效果(一)相关推荐
- Unity3D中开发2D游戏——动画的制作
动画的制作其实很简单 如果你是一个整张的素材 类似这种 选择你的素材Born 切换Sprite Mode 为Multiple模式 然后点击Sprite Editor 选择自动切割或者是按规定大小切割 ...
- css3中的animation的动画帧制作-卡通人物的走动效果
css3中的animation的动画帧制作-卡通人物的走动效果 代码如下: <!DOCTYPE html> <html lang="en"> <hea ...
- 【Animate】Actionscript3.0脚本制作下雨效果
[Animate]Actionscript3.0脚本制作下雨效果 1.创建元件 名称设为rain,同时在Actionscript里创建类rain. 形状编辑为长方形代表雨点 2.创建脚本 然后回到场景 ...
- Photoshop CS2 视频教程-PS制作下雨效果(转)
Photoshop CS2 视频教程-PS制作下雨效果(转)[@more@] Photoshop CS2是Photoshop最新版本,也是目前图像处理功能最强大的软件之一.在教程安排上注重由浅入深,循 ...
- Unity3D中暂停时的动画及粒子效果实现
暂停是游戏中经常出现的功能,而Unity3D中对于暂停的处理并不是很理想.一般的做法是将Time.timeScale设置为0.Unity的文档中对于这种情况有以下描述: The scale at wh ...
- unity3d学习笔记——老版动画系统的使用
新的动画系统mechanim相对老版的动画系统,功能强大了不少,但是消耗也不小--需要计算的东西就更多了,所以学习新的动画系统的同时,掌握并使用老版动画系统也是很必要的,虽然老版动画系统相对简单得多, ...
- Unity3D 4.x怎样实现动画的Ping Pong效果
近期在看Unity官方的Stealth项目教学视频.视频使用的是Unity旧的版本号,而我如今正在使用的是Unity 4.5,动画系统的操作全然不同了.依照视频的方式根本无法设置动画的Ping Pin ...
- 【Unity3D小技巧】Unity3D中Animation和Animator动画的播放、暂停、倒放控制
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦. 一.前言 ...
- Android ProgressBar 加载中界面实现(loading 动画) 实现菊花的效果
实现的效果图如下: 使用方法ProgressBar ,如果感觉 这个动画不是自己想要的,需要根据ui的图片来实现只需要将xml中的animated-rotate 修改为animation-list 贴 ...
最新文章
- Pytorch的默认初始化分布 nn.Embedding.weight初始化分布
- java hashmap存取效率_HashMap为什么存取效率那么高?
- redhat-problem to be research
- 电商系统下单时商品库存和销售状态如何处理
- android webview简单使用,android WebView 简单使用Demo
- 入门干货:Python操作Word文件经验分享
- [Mugeda HTML5技术教程之3] Hello World: 第一个Mugeda动画
- jQuery-1.9.1源码分析系列(十) 事件系统——事件体系结构
- PHP面向对象之领域模型+数据映射器
- 自动化爬虫selenium之键盘操作
- python生成所有6位数的数字手机验证码(000000-999999)
- 云计算、分布式计算、并行计算、网格计算、集群
- SAE 联合乘云至达与谱尼测试携手共同抗疫
- Android 如何屏蔽返回键和Home键
- 在某软国际的那些日子
- mirrors.aliyun.com 无法解析域名
- 如何抓取安卓APP日志?
- 服务器多网卡多路由策略
- NS3仿真之LTE数据分析RSRP,SINR,吞吐量
- 神经网络算法应用场景,视觉算法具体是做什么
热门文章
- 多核处理器_多核处理器还能走多远?2050年用上1024核CPU
- docker和虚拟机的区别_详解win7操作系统下安装部署Docker环境
- 数据服务器性能测算依据,如何对服务器性能计算的公式参考(tpmc-tpcc).pdf
- js 操作java对象_JavaScript 对象基础
- mybatis there is no getter named forInteger
- jupyter命令把.ipynb文件转化为.py文件
- JNI教程与技术手册
- React学习:组件之间的关系、参数传递-学习笔记
- 基础练习 字母图形 c语言
- 图像浏览界面缩放和平移操作的实现