之前看了以前版本的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.,y为1,offset的x为0.,y为0。选中RippleObj,将Shader下的Tint Color改为白色。(改为白色为了使雨滴更加明显一点) 修改后效果:步骤3: 选中RippleObj,按Ctrl6,调出Animation窗口,点击窗口下的Ripple(material),会发现下面都是灰色不可选状态。 点击RippleObj右边的一个小按钮,会出现[Create New Clip],点击。此时Ripple(Material)下的选项都已可用。 点击后会出现下面的对话框,提示保存动画文件。命名为RainAnimation,保存。步骤4: 选择Ripple(Material)下的Main Tex.offset.x,点击右边的小横线->Addkey。 拖动时间轴到0.,再次Addkey,修改offset.x为0.。分别在0帧Addkey,offset.x为0,0.帧Addkey,offset.x为0.,0.1帧Addkey,offset.x为0.,0.帧Addkey,offset.x为0.5,0.2帧Addkey,offset.x为0.,0.帧Addkey,offset.x为0.。效果图如下:步骤5: 此时的Animation窗口中有一条从0.0—0.的红色斜线,用鼠标框选六个关键帧,右键—>Both Tangents—>Constant(右键需在红色的关键点上点击)。此时斜线被改为梯形上升的线。选择Tint Color.a,在0.0帧修改Tint Color.a为1,0.帧即最后一帧设置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 } }复制代码 将脚本赋给RippleObj。 在Animation窗口中,最后一帧即0.帧处,点击右边的Add Event按钮,在0.帧添加一个事件并将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 () { } 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.positionnew Vector3(Random.Range(,-),0,Random.Range(,-));//移动涟漪物体到一个随机位置 } } }复制代码 将rippleFX脚本赋给空物体ripple,再将prefab物体RippleObj赋给ripple的脚本的变量RippleObj即可。 点击运行,即可出现地上很多涟漪的效果。 涟漪做完了,下一篇继续写雨滴的做法~~
推荐整理分享Unity3d中使用自带动画系统制作下雨效果(一)(unity3d怎么写代码),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity自动生成,unity 自动生成代码,unity怎么制作游戏3d,unity 3d教程,unity3d怎么写代码,unity怎么制作游戏3d,unity怎么制作游戏3d,unity3d制作,内容如对您有帮助,希望把文章链接给更多的朋友!
TNet Tasharen Networking 学习总结 TNetTasharenNetworking插件可用于轻量级多人网络游戏的网络功能的开发。功能说明:每启动一次程序,自动创建一个角色,通过鼠标点击可控制角色的移动
C#程序员整理的Unity 3D笔记(十):Unity3D的位移、旋转的3D数学模型 遇到一个想做的功能,但是实现不了,核心原因是因为对U3D的3D数学概念没有灵活吃透。故再次系统学习之—第三次学习3D数学.本次,希望实现的功能很
unity学习日志 1直接在unity中接sdk渠道