最近看了下Unity3d的粒子系统的相关视频,并且动手操作了下,感觉自己的美工技能又增进了下(开个小玩笑),发现粒子系统所需要记忆的东西还是有点多的。

所以为了不让自己遗忘某些知识点,我准备发布成博客,以便以后能够查阅回忆。

OK,废话不多说,马上进入Particle System,相对程序员来说的噩梦:

我们先来看看Particle System在Inspector视窗中的属性:

可见,粒子总共有个Transform组件和Particle System组件。

1.Transform:可以控制粒子在世界或者本地坐标的改变。但是有点注意的是,如果你改变Scale属性值是不会影响粒子的大小缩放的。所以我们想改变粒子大小不能这么改。

2.Particle System:改变粒子的属性,比如大小,发射速度等等。这个也是我们制作粒子的核心组件。

OK,来看看这些属性值的作用。

我们先在Scene中创建一个新的Particle System,然后到Inspector视窗中。

1.我们先来学下他的基本属性:

(1)Duration:粒子持续的时间,什么意思?就是你发射器发送粒子持续的时间。可能还有些绕,举个例子,比如你打火机打开,点个烟。从打开到熄灭火这个过程火焰持续在燃烧,那么这个时间段就是Duration。再举个例子,你煤气在烧两壶水,一个烧水10分钟,一个烧水5分钟。那么煤气灶是粒子发射器,火焰是粒子,10分钟和5分钟就是持续时间。

我们做个小实验,我们把loop勾去掉,因为这个会影响Duration,如果是loop循环发射那么Duration就为无穷大,没有意义。把Duration改成5和1分别试下。

5秒:

可以看到5秒之后呢,粒子就不再发射了。

1:

可以看到1秒之后,粒子就不再发射。

(2)Looping:循环发射粒子。我们打钩之后,粒子发射器就会不断的持续的发射粒子,不管你的Duration调成多少,他都是一成不变的管自己发射。

(3)Prewarm:预热粒子发射。什么意思,当我们开始发射粒子的时候,是不是粒子数量从0开始,然后才慢慢增多,可看到上面额gif。但是当我们勾选这个,他就会在我们点击发射的时候,他不是从数量0开始,而是像已经发射一个周期一样。(注意他只是在Looping打钩的情况下才能使用)

可以看到我一点发射,他数量就已经是发送一个周期的数量。

(4)Start Delay:延迟多长时间开始发射粒子。也就是说我们点击开始发射,他会暂停这么多时间后,然后才开始发射粒子。

(5)Start Lifetime:开始粒子的生命周期。这个值就是单个粒子的生命周期。就像我们人类的寿命一样,比如有个人的寿命80,过了80年,他就从世界上消失了。那么如果一个粒子的开始生命周期是5秒,那么这个粒子发射到Unity3d的World中,过了5秒之后,这个粒子就消亡了,道理是一样的。

那么我们想让不同的粒子有着不同的生命周期,那么怎么弄?放心,在unity中我们生命周期的值是可以设置随机不同的值。具体看下Inspector视窗中的属性:

可以看到他支持4中不同类型的值:

(1.Constant:常量。也就是每个生命周期都一样。

(2.Curve:曲线。

举个例子,假如我Duration是3秒,生命周期钥匙曲线值,那么我弄得曲线是如图。

那么这个曲线是什么意思呢,纵坐标表示生命周期的值,横坐标表示Duration的值。

假如我们在点(0.5,4)做文章,也就是说在一个粒子在粒子发射器已经持续发射0.5秒后发射出来,那么他对应的生命周期就是是4秒,所以越往后面发射生命周期越小,消亡越快。

(3.Random Between Two Constants:随机在两个常量之间。也就说粒子生命周期定在这两个常量中间。比如我定的两个常量是1,10。那么粒子生命周期可能是1,可能是3,可能是10,反正不会超过或者小于两个值。

(4.Randow Between Two Curves:随机在两条曲线之间。

这个也是类似的,但是取值就是两条曲线之间的取值,比如我在图中已经画出了一条直线,如果Duration刚好是图中直线的x坐标值,那么这条直线和两条曲线相交的两个值,那么这个生命周期就会随机从这两个中取一个。

OK,终于讲完了取值。接着我们看。

(6)Start Speed:开始速度。粒子出生具有的速度,这个值也是可以有4中类型的,因为有些粒子速度快点,有些慢点。

(7)Start Size:开始大小。粒子出生具有的大小。跟速度一样,也是4种类型的。

(8)Start Rotation:开始旋转方向。粒子出生具有的旋转方向。也是4种类型的值。

(9)Start Color:开始颜色值。粒子出生具有的颜色。

在第二种我这里讲下,这个是颜色渐变值,什么意思?当我们选择Gradient渐变的模式时:

会出现这编辑器,那么怎么制作呢?很简单,我们只要在空白双击就会出现指标,然后不同的指标改变不同的颜色,那么怎么会有上下浮标。

这里上面是Alpha的值,下面是Color的值。

修改完颜色之后,我们来看看效果。

可以看到颜色先是红色,再是紫色,然后蓝色,最后白色,是不是我们上面调的颜色顺序,也就是说他是根据Duration然后改变不同的颜色。

(9)Gravity Multiplier:受重力影响的值。也就是说这个值越大,那么受到重力越大。我们做个小实验,我们修改Start Speed大一点,为10,然后修改这个值为2。发射粒子:

可以看到发射出去的粒子都受到重力影响往下落。

(10)Inherit Velocity:继承速度。也就是说这个值是影响粒子受到发射器速度的影响。一般来说我们这个值是设为0.这里参数我们不管,因为我也不怎么懂。=_=!

(11)Simulation Space:发射坐标。什么意思?这里有两个参数可供选择。第一个是Local(默认),第二个是World,这两个有什么区别呢?

区别还是蛮大的,首先我们知道粒子是从粒子发射器里面发射出来的,但是粒子发射出来后是属于粒子发射器还是世界的?这里如果是Local的话,也就是说粒子还是属于本地粒子发射器的,粒子发射出来后,粒子发射器在哪里粒子就在哪里。

但是World就截然不同,它表示发射出来的粒子是属于世界的,已经不是属于粒子发射器的,所以当你移动粒子发射器,已经发射的粒子还是留在原地。

我们来看下实验结果:

(12)PlayOnAwake:是否在激活就播放。

(13)Max Particles:最多粒子数。就是一个duration内发射粒子最多数量。如果是1的话,一个duration只发射1.

OK,讲完基础属性,我们接着讲各个比较重要的属性:

发射器相关的属性,可以看到第一个属性Rate:

1.Rate:每秒发射多少粒子(简称发射速率)。什么意思,比如你的Duration是5秒,Max Particles是50的话,你Rate为10,那么就是每秒发射10个粒子,5秒就发射50个。但是现在如果把Rate改成50的话,那么一秒一次性发射50个粒子,也就是说把所有的发射完了,那么就下来的4秒就没有粒子可以发射了。

2.Bursts:粒子集。可以看到粒子集右边有个+号的按钮,我们点击就会出现Time和Particles的参数选择。

那么这两个参数是干嘛用的,其实就是在0.00时刻,发射30个粒子,结合上图显示的参数。

我们还可以点击+号继续添加不同时刻发射不同数量的粒子。比如我继续添加在4.00时刻发射30粒子。

这里注意下,这个Time时刻是不能超过Duration持续时间,不然的话是没有效果的,还有发射粒子的总数和不能超过Max Particles,不然的话发射总数还是Max Particles,只不过超过的部分自动被截断了。还有得吧Rate改成0,因为没有速率可言。

然后观察下效果:

可以看到在0.00时刻发射30个,在4.00时刻发射20,为什么因为Max Particles才50,面前已经30,所以最后50-30=20个。

OK,我们看下个模块,感觉篇幅有点多,我们下节继续。

Unity3d-Particle System系统的学习(一)的更多相关文章

  1. Unity3d Mecanim动画系统Animator学习笔记

    1. unity3d Mecanim学习  Unity3d新版动画系统网上的介绍很多,但多是流水笔记,外人很难看明白,后来我 终于找到介绍的比较明白的两个作者,特别感谢.一个是58开发网的乐天老师,课 ...

  2. Unity3d-Particle System系统的学习(二)

    这节我们继续上节没讲完的Particle参数. 上节我们讲了Emission发射器参数,我们接着往下讲Shape: 可以看到这个子模块的参数是跟形状有关: 1.Shape:发射形状.粒子被约束在这个形 ...

  3. Unity3d-Particle System系统的学习(三)

    这节课我们来实战下上几节讲的几乎所有Particle System用到的参数. 我们今天制作下图所示的粒子: 类似于带有光晕的魔法球.用到的材质也就是上节课用到的材质贴图. http://pan.ba ...

  4. Unity3D学习笔记——组件之Effects(效果/特效)——Particle System(粒子系统)

    Effects:效果/特效. Particle System:粒子系统.可用于创建烟雾.气流.火焰.涟漪等效果. 在Unity3D 3.5版本之后退出了新的shuriken粒子系统:   添加组件之后 ...

  5. Unity3d-Particle System 5.x系统的学习(四)

    Unity3d-Particle System 5.x系统的学习(四) 今天,我们来聊聊unity5.x的粒子系统和unity4.x粒子系统的区别. 我大致看了下,区别还是蛮多的,但是总体的粒子制作思 ...

  6. Linux 系统编程 学习:04-进程间通信2:System V IPC(1)

    Linux 系统编程 学习:04-进程间通信2:System V IPC(1) 背景 上一讲 进程间通信:Unix IPC-信号中,我们介绍了Unix IPC中有关信号的概念,以及如何使用. IPC的 ...

  7. Linux 系统编程 学习:05-进程间通信2:System V IPC(2)

    Linux 系统编程 学习:05-进程间通信2:System V IPC(2) 背景 上一讲 进程间通信:System V IPC(1)中,我们介绍了System IPC中有关消息队列.共享内存的概念 ...

  8. Unity3D:粒子系统Particle System

    1. GameObject → Create Other  →  Particle System. 2. 选中 Particle System,可看到下列屬性: 3.Particle System: ...

  9. [Unity3D]做个小Demo学习Input.touches

    [Unity3D]做个小Demo学习Input.touches 学不如做,下面用一个简单的Demo展示的Input.touches各项字段,有图有真相. 本项目已发布到Github,地址在(https ...

随机推荐

  1. TcxGrid 内容 行高度

  2. List集合去除重复对象及equals()、hashCode()方法的作用

    原文:https://blog.csdn.net/freelander_j/article/details/52211010 在java中,要将一个集合中重复的对象除去,如果这个集合中的数据类型是基本 ...

  3. springcloud hystrix 部分参数整理

    hystrix.command.default和hystrix.threadpool.default中的default为默认CommandKey Command Properties Executio ...

  4. vs2010下sort比较函数链接错误问题

    环境:win7 + vs2010 + C++ 实现vector的sort算法,在类的头文件中写入比较函数时会出现链接错误: error LNK2005: "bool __cdecl comp ...

  5. xgboost 实践

    xgboost 安装:xgboost:Scalable and Flexible Gradient Boosting github:  eXtreme Gradient Boosting 中文教程:可 ...

  6. 求任意多边形面积 python实现

    数学解决方法: 多边形外选取一点,连接各点构成三角形,计算求和......  详细链接  http://blog.csdn.net/hemmingway/article/details/7814494 ...

  7. centos 7 安装 BeautifulSoup 和requests

    安装beautifulsoup wget https://www.crummy.com/software/BeautifulSoup/bs4/download/4.5/beautifulsoup4-4 ...

  8. PHP菜刀工具WebHandler

    PHP菜刀工具WebHandler   在Web渗透测试中,后台代码如果包含系统命令执行功能,并以用户提交的数据作为参数,就带来潜在的安全隐患.Kali Linux提供一款PHP菜单工具WebHand ...

  9. php模板引擎之blade

    一.简介模板引擎 模板引擎是将网站的页面设计和PHP应用程序几乎完全分离的一种解决方案,它能让前端工程师专注页面搭建,让后台工程师专注功能实现,以便实现逻辑分离,让每个人发挥所长.模板引擎技术的核心是 ...

  10. Python基础笔记(一)

    1. 输出 主要函数为print(),基础调用为: myName = "wayne" myAge = 18 print("My name is %s, I'm %d ye ...