Unity3d-Particle System系统的学习

最近看了下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,终于讲完了取值。接着我们看。

时间: 2024-10-19 05:36:43

Unity3d-Particle System系统的学习的相关文章

Unity3d Mecanim动画系统Animator学习笔记

1. unity3d Mecanim学习  Unity3d新版动画系统网上的介绍很多,但多是流水笔记,外人很难看明白,后来我 终于找到介绍的比较明白的两个作者,特别感谢.一个是58开发网的乐天老师,课程 视频网址:http://www.58kaifa.com/course/24, 这是一个免费的视频课程,讲解的 很仔细,很清除.另一个是博客园的 阿诚de窝,文章地址:http://www.cnblogs.com/hammerc/category/647246.html, 各个控制面板上的参数含义

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

这节课我们来实战下上几节讲的几乎所有Particle System用到的参数. 我们今天制作下图所示的粒子: 类似于带有光晕的魔法球.用到的材质也就是上节课用到的材质贴图. http://pan.baidu.com/s/1nvlQST7 该粒子用到的贴图和材质 首先,我们先分解下整体粒子,其中包含哪几个部分: 1.光晕(不止一个) 2.星光 因为光晕是粒子的整体部分,所以我们把它当做粒子的父类节点. 所以我们直接先做粒子的主体部分--光晕 因为中间部分的粒子不会移动,所以我们得把粒子的Speed

Unity3D Particle System + Audio Source = 音乐可视化

很简单的东西,上代码: using UnityEngine; using System.Collections; public class particle_ocean : MonoBehaviour { public ParticleSystem particleSystem; private ParticleSystem.Particle[] particlesArray; public int resolution = 256; public float spacing = 0.5f; p

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

这节我们继续上节没讲完的Particle参数. 上节我们讲了Emission发射器参数,我们接着往下讲Shape: 可以看到这个子模块的参数是跟形状有关: 1.Shape:发射形状.粒子被约束在这个形状中发射.我们看看效果图就知道了.就拿这个Cone锥形来看: 可以看见粒子发射总是被约束在这个锥形中. 我们看看总共有几种形状: 1.Sphere:球体.粒子被约束在这个球体中发射. (1.Radius.球体半径. (2.Emit from Shell:是否粒子发射是在圆形的表面发射.默认是圆形体内

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

Effects:效果/特效. Particle System:粒子系统.可用于创建烟雾.气流.火焰.涟漪等效果. 在Unity3D 3.5版本之后退出了新的shuriken粒子系统:   添加组件之后的效果:   其中的Open Editor按钮可以打开粒子编辑器,用于编辑复杂的粒子效果. 由于shuriken粒子系统是模块化的管理方式,所以可以动态的添加模块: 1.初始化模块:此模块是效果组件固有的模块. Duration:粒子发射器,发射粒子的时间.单位为S(秒). Looping:是否开启

[原]Unity3D深入浅出 - 粒子系统(Particle System)

粒子系统是在三维控件渲染出来的二维图像,主要用于烟,火,水滴,落叶等效果.一个粒子系统由例子发射器.粒子动画器和粒子渲染器三个独立的部分组成. Unity中自带了一些粒子效果,在Assets>ImportPackage>Particles,即可将Prticles.UnityPackage导入到项目中,这些粒子效果包括:Dust(沙尘).Fire(火焰).Water(水).Smoke(烟雾).Sparkles(闪光),还有一些粒子资源 Sources.Misc(杂项),如下图 随便拖出来几个 接

Unity3D:粒子系统Particle System

1. GameObject → Create Other  →  Particle System. 2. 选中 Particle System,可看到下列屬性: 3.Particle System: Duration: 粒子发射时间(设定为5秒,每5秒发射一次粒子). Looping:是否循环产生粒子(如果要持续发射就打勾:否则将Looping关闭). Start Delay:粒子一开始产生是否延迟发射(若设定为5,时间过5秒才开始发射粒子,预设为0). Start Lifetime:粒子生命周

QML官方教程——Using the Qt Quick Particle System

附网址:http://qt-project.org/doc/qt-5/qtquick-effects-particles.html Using the Qt Quick Particle System-- 使用Qt Quick粒子系统 所有粒子系统的类型都可以在QtQuick.Particles模块文档中找到. 注意想要使用粒子模块中的类型,你需要使用下面这个代码进行引入: import QtQuick.Particles 2.0 · The ParticleSystem 粒子系统包含4个主要的

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

[Unity3D]做个小Demo学习Input.touches 学不如做,下面用一个简单的Demo展示的Input.touches各项字段,有图有真相. 本项目已发布到Github,地址在(https://github.com/bitzhuwei/AndroidTouchDemo). 制作Demo 很简单,只需拉一个Text,然后添加一个脚本. 脚本如下. 1 using UnityEngine; 2 using System.Collections; 3 4 public class Disp