Unity3.5自带粒子系统注释。。。小经验分享。。。

本文深入解读Unity3D粒子系统的核心参数,包括初始化模块、发射模块、形状模块等,并提供实操案例,助你高效制作烟雾、火焰等特效。




Initial Module 初始化模块(这个模块总是存在的,不能删除或禁用。)

Duration           粒子系统发射粒子的持续时间

Looping            粒子系统是否循环

Prewarm           预热系统,当looping系统开启时,才能启动预热系统,这意味着,粒子系统在游戏开始时已经发射粒子,就好象它已经发射了粒子一个周期。

Start Delay         初始延迟,粒子系统发射粒子之前的延迟。注意在prewarm(预热)启用下不能使用此项。

StartLifetime       初始生命,以秒为单位,粒子存活时间

Start Speed         粒子发射时的速度

Start Size           粒子发射时的大小

StartRotation       粒子发射时的旋转值

Start Color          粒子发射时的颜色

GravityModifier     重力修改器,粒子在发射时受到的重力影响

Inherit Velocity      继承速度,控制粒子速率的因素将继承自粒子系统的移动(对于移动中的粒子系统)

SimulationSpace      模拟空间,粒子系统在自身坐标系还是世界坐标系

Play OnAwake        唤醒时播放,如果启用粒子系统当在创建时,自动开始播放。

MaxParticles         最大粒子数,粒子发射的最大数量

Emission Module 发射模块控制粒子的发射时的速率,可以在某个时间生成大量粒子(在粒子系统存续期间)。在模拟爆炸时非常有效,那时候需要一次创建一大堆粒子。

    Rate            速率每秒或每米的粒子发射的数量

Bursts (Time option only)   突发(仅Time选项下),在粒子系统生存期间增加爆发

Time and Number of Particles  粒子的时间和数量,指定时间(在生存期内,以秒为单位),将发射指定数量的粒子。用"+"或"-"调节爆发数量

Shape Module 形状模块定义发射器的形状:球形、半球体、圆锥,盒子和模型。能提供初始的力,该力的方向将延表面法线或随机。

Sphere 球体

      Radius         半径球体的半径(可以在场景视图里面手动操作)

   Emit from Shell      从外壳发射,从球体外壳发射。如果设置为不可用。粒子将从球体内部发射。

    Random Direction     随机方向,粒子发射将随机方向或是沿表面法线。

Hemisphere 半球

     Radius               半径,半椭圆的半径(可以在场景视图里面手动操作)

     Emit from Shell        从外壳发射,从半椭圆外壳发射。如果设置为不可用。粒子将从半椭圆内部发射。

     Random Direction      随机方向,粒子发射将随机方向或是沿表面法线

Cone 锥体

      Angle                角度,圆锥的角度。如果是0,粒子将延一个方向发射。(可以在场景视图里面手动操作)

      Radius               半径,如果值超过0,将创建1个帽子状的圆锥,通过这个将改变发射的点(可以在场景视图里面手动操作)

Box 立方体

       Box X                立方体X轴的缩放值(可以在场景视图里面手动操作)

        Box Y                立方体Y轴的缩放值(可以在场景视图里面手动操作)

        Box Z               立方体Z轴的缩放值(可以在场景视图里面手动操作)

        Random Direction      随机方向,粒子将延一个随机方向发射或延Z轴发射

Mesh 网格

          Type                  类型,粒子将从顶点、边、或面发射

        Mesh                 网格,选择一个面作为发射面

        Random Direction       随机方向,粒子发射将随机方向或是沿表面法线

Velocity Over Lifetime Module 存活时间的速度模块粒子的直接动画速度。通常用于复杂物理粒子,不过是简单的视觉行为(如与飘荡的烟雾和气温降低)和物理世界的小互动。

             XYZ                使用常量曲线或在曲线中随机去控制粒子的运动。

         Space                局部/世界:速度值在局部还是世界坐标系

Limit Velocity Over Lifetime Module 存活期间的限制速度模块基本上被用于模拟的拖动。如果有了确定的阀值,将抑制或固定速率。可以通过坐标轴或向量调整。)

              Separate Axis         分离轴,用于每个坐标轴控制

         Speed                速度,用常量或曲线指定来限制所有方向轴的速度

         XYZ                 用不同的轴分别控制。见最大最小曲线

         Dampen              阻尼(0-1)的值确定多少过度的速度将被减弱。举例来说,值为0.5,将50%的降低速度

Force Over Lifetime Module 存活期间的受力模块

       XYZ                使用常量或随机曲线来控制作用于粒子上面的力

          Randomize          随机每帧作用在粒子上面的力都是随机的

Color Over Lifetime Module 存活期间的颜色模块

       Color                颜色,控制每个粒子在其存活期间的颜色。如果有的粒子活的短,那么变化则更快。常量颜色、两色随机、使用渐变动画或在2个渐变之间指定1个随机值。

          Color Scale           颜色缩放,使用颜色缩放可以更好的调整纯色和渐变色

          Speed Range         速度范围,min和max值用来定义颜色速度范围

Size Over Lifetime Module 存活期间的大小模块

        Size               大小控制每个粒子在其存活期间内的大小。使用常量,曲线,2曲线随机

Size By Speed Module 存活期间的大小速度模块

        Size               大小大小用于指定速度。用曲线表示各种大小。

           Speed Range        速度范围min和max值用来定义大小速度范围。

Rotation Over Lifetime Module 存活期间的旋转速度模块以度为单位指定值

        Rotational Speed    旋转速度,控制每个粒子在其存活期间内的旋转速度。使用常量,曲线,2曲线随机。

Rotation By Speed Module 旋转速度模块

        Rotational Speed    旋转速度,用来重新测量粒子的速度。使用曲线表示各种速度。

           Speed Range        速度范围,为min和max值用来定义旋转速度范围。

Collision Module 碰撞模块为粒子系统建立碰撞。现在只有平面碰撞被支持,这个将很有效率的做简单探测。平面的建立将引用1个现有的位置变换或者创建1个新的游戏物体,来达到这个目的

                Planes             平面,Planes被定义为指定变换引用。变换可以场景里面的任何一个,而且可以动画化。多个面也可以被使用。注意Y轴作为平面的法线。

           Dampen            阻尼,0-1 当粒子碰撞时,这个将保持速度的一小部分。除非设置为1.0,任何粒子都会在碰撞后变慢

           Bounce             反弹,0-1 当粒子碰撞,这个将保持速度的比例,这个是碰撞平面的法线。

           Lifetime Loss        生命减弱,(0-1) 初始生命每次碰撞减弱的比例。当生命到0,粒子死亡。例如, 粒子应该在第一次碰撞时死亡,这种这个到1.0

           Visualization        可视化,可视化平面:网格还是实体

           Grid               网格,渲染为辅助线框, 将很快的指出在世界中的位置和方向。

           Solid               实体,在场景渲染为平面,用于屏幕的精确定位。

           Scale Plane          缩放平面,重新缩放平面

Sub Emitter Module 子粒子发射模块非常好用的模块,可以生成其他粒子系统,用下列的粒子事件:出生、死亡、碰撞

                 Birth              出生,在每个粒子出生的时候生成其他粒子系统

            Death              死亡,在每个粒子死亡的时候生成其他粒子系统

            Collision            碰撞,在每个粒子碰撞的时候生成其他粒子系统。重要的 碰撞需要建立碰撞模块。见碰撞模块

Texture Sheet Animation Module 纹理层动画模块在粒子存活期间动画化UV坐标。动画每帧可以显示在表格或1个表格的每行,这样将动画分开。每帧可以用曲线动画或者在2个曲线取随机。速度被定义为"循环"注意:用于动画的纹理是在渲染器模块中材质找到使用的              

Tiles               平铺,定义纹理的平铺

Animation          动画,指定动画类型:整个表格或是单行。

- Frameover Time    时间帧,在整个表格上控制UV动画。使用常量,曲线,2曲线随机。

            Single Row         单行,为UV动画使用表格单独一行

            - RandomRow      随机行,如果选择第一行随机,不选择得指定行号(第一行是0)

            - Frameover Time    时间帧,在1个特定行控制每个粒子的UV动画。使用常量,曲线,2曲线随机

            - Cycles            周期,指定动画速度

Renderer Module 渲染器模块渲染模块显示粒子系统渲染组件的属性。注意:即使一个游戏物体有渲染粒子系统组件,当此模块被删除/添加后,它的属性也只能显示在这里。这个实际上是粒子系统渲染组件的添加和删除

                   Render Mode      渲染模式,选择下列粒子渲染模式之一

             Billboard         广告牌,让粒子永远面对摄像机

             Stretched Billboard 拉伸广告牌,粒子将通过下面属性伸缩

             -Camera Scale     摄像机缩放,决定摄像机的速度对粒子伸缩的影响程度

             -Speed Scale      速度缩放,通过比较速度来决定粒子的长度

             -Length Scale      长度缩放,通过比较宽度来决定粒子的长度

             Horizontal Billboard 水平广告牌,让粒子延Y轴对齐

             Vertical Billboard   垂直广告牌,当面对摄像机时,粒子延XZ轴对齐

Mesh             网格,粒子被渲染时使用mesh而不是quad

- Mesh            网格,渲染粒子所用的网格引用

Material          材质,广告牌或网格粒子所用的材质

Sort Mode        排序模式,绘画顺序可通过具体,生成早优先和生成晚优先

Sorting Fudge     排序校正,使用这个将影响绘画顺序。粒子系统带有更低sorting fudge值,更有可能被最后绘制,从而显示在透明物体和其他粒子系统的前面

Cast Shadows     投射阴影,粒子系统可以投影?这是由材质决定的

Receive Shadows  接受阴影,粒子能不能接受阴影?这是由材质决定的

Max Particle Size   最大粒子大小,设置最大粒子大小,相对于视窗大小。有效值为0-1








老版本注释参考:


粒子系统在Unity通常用作制作烟雾,蒸汽,火焰和其他雾化效果,通过一到两个材质和不断绘画,创造一个混乱特效。典型的粒子系统在一个物体上包括一个Particle Emitter粒子发射器, 一个Particle Animator粒子播放器和一个Particle Renderer粒子渲染器,如果想和别的物体交互,可以添加一个ParticleCollider粒子碰撞器到物体上。

下面给出各个参数的详解对照图(unity例子系统参数对照)

Unity3D Particle System粒子系统 - 重庆unity3d - unity3d工作室


小经验分享:

《一.Unity3D3.5的粒子系统默认是一直在不停的发射,如何实现只发射一次》


这种情况。。。。在Emission里面把Rate改为0,然后Bursts点一下加号
Time设置为0
Particles就填你设定的最大粒子数
这样就会一次性把你设置的粒子数发射出去



《二.unity3d 3.5 如何检测粒子碰撞

首先给粒子加上World Particle Collider,然后勾上sendCollisionMessage
然后用
function OnParticleCollision (other : GameObject) 
{    
	var body : Rigidbody = other.rigidbody;    
	if (body) {       
		 var direction : Vector3 = other.transform.position - transform.position;        
		 direction = direction.normalized;        
		 body.AddForce (direction * 5);    
	}
}
接受碰撞信息,要注意的是,被粒子碰撞的物体需要加collider



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值