unity粒子效果(unity粒子效果发光特效)

http://www.itjxue.com  2023-02-24 10:15  来源:未知  点击次数: 

unity3d在代码中怎样控制粒子特效的重新播放与停止?答案最好详细点,可以加分

通过粒子系统的Simulate方法来模拟对应时间的粒子状态来完成效果,控制粒子特效的重新播放与停止。具体操作如下:

1、首先下段代码比如对于Legacy粒子,使Emitter在timeScale=0停止时继续有效发射并显示效果。

2、给cube2加上了针对粒子的一个代码,在timeScale?=0的情况下,特效可以顺利正常播放,其他都还是暂停的。

3、然后给一个空对象,绑定了一个代码,来控制粒子特效也同样不受影响,暂停的效果依然是暂停的。

4、当点击停止按钮时timeScale?=0,全部停止了或者点击重新开始如下图。

Unity的粒子系统(一)基础篇

闲来无事,仔细的学习一下粒子系统,也当是给自己做个笔记方便之后进行回顾。

引擎版本:Unity2018.3

创建方式:

1、Hierarchy--Effects--ParticleSystem

2、gameObject--AddComponent--ParticleSystem

两种创建的方式的区别只有是否有默认材质球的区别,即是否携带初始材质。

1、OpenEditor:打开粒子编辑面板,同一父物体下的粒子系统会按照从上到下的关系从左到右排序。

2、基础模块:ParticleSystem下的物件名(图片中的ParticleSystem),可以进行粒子运动的参数进行基础的设置。

3、Emission:发射模块,控制粒子的单次发射数(时间或者移动距离),以及可控的粒子发射时间。

4、Shape:形状模块(发射器的形状),控制修改发射器的形状和相应的参数。

5、Velocity over Lifetime:粒子生命周期内的速度变化模块,在粒子生命周期内的对速度进行控制。(可以在粒子还没销毁前控制其速度的变化)。

6、Limit Velocity over Lifetime:粒子生命周期内的限速模块,控制粒子的最大速度。

7、Inherit Velocity:粒子速度继承模块,控制粒子是否继承父物体的移动参数(需要改变基础模块中Simulation Space的参数为World)。

8、Force over Lifetime:生命周期内粒子力的变化模块,在粒子生命周期内对力进行控制。

9、Color over Lifetime:生命周期内粒子颜色的变化模块,控制粒子生命周期内颜色的变化。

10、Color by Speed:根据粒子速度改变粒子颜色模块,通过粒子的速度控制粒子的颜色。

11、Size over LifeTime:生命周期内粒子大小的变化模块,控制粒子生命周期内粒子大小的变化。

12、Size by Speed:根据粒子速度改变粒子大小模块,通过粒子速度改变粒子的大小。

13、Rotation over Lifetime:生命周期内粒子旋转属性的变化模块,控制粒子生命周期内粒子旋转属性的变化。

14、Rotation by Speed:根据粒子速度改变粒子速度模块,通过粒子速度改变粒子的旋转。

15、External Forces:外力模块,当粒子碰到相关联物体给粒子增加一个力。

16、Noise:噪音模块,可以对粒子进行不规则的运动设置。

17、Collision:碰撞体模块,可以控制粒子与指定物体之间的碰撞,以及碰撞后的粒子效果。

18、Triggers:触发器模块,控制粒子进出指定触发器后的粒子效果。

19、Sub Emitters:添加发射器模块,给该发射器增加其他的发射器。

20、Texture Sheet Animation:粒子帧动画模块,使粒子呈现帧动画形式的播放。

21、Lights:粒子灯光模块,可以给粒子增加实时光照。

22、Trails:路径模块,可以显示粒子的发射路径。

23、Custom Data:自定义模块,可以自定义粒子的一些属性。

24、Renderer:渲染模块,对粒子的展现形式进行设置,包括但不仅限于粒子的大小与材质。

Particle System Force Field(粒子系统的力场组件),其作用是对所关联的粒子系统施加外力,要使用这个组件,需要开启粒子系统中的External Forces(外力模块)并进行关联。

1、shape:形状,力场的表现样式。

2、Start Range:开始的范围(无法大于End Range)。

3、End Range:结束的范围,数值越大力场越大。力场介于Start Range 至End Range之间。

4、Direction(x,y,z):x,y,z方向上力的大小。

5、Gravity

5.1、Strength(Gravity):强度,可以想象成地球的引力,数值越大,越容易被焦点(引力点)吸引。

5.2、Focus(Gravity):焦点,控制引力点对粒子是吸引还是排斥。

6、Rotation

6.1、Rotation(Speed):粒子围绕力场中心运动的速度。

6.2、Rotation(Attraction):粒子被卷入中心点的强度。

6.3、Rotation(Randomness):对粒子产生随机性的推动。

7、Drag

7.1、Strength(Drag):拽住粒子的强度,类似你上楼梯后面有人拉你的衣角不让你上去的感觉。

7.2、Multiply by size(Drag):根据粒子大小调节拖拽强度。

7.3、Multiply by Velocity(Drag):根据粒子速度调节拖拽强度。

8、Vector Field

8.1、Volume Texture(Vector Field):向量场的纹理贴图(Texture 3D)。

8.2、Speed(Vector Field):改变通过向量场的粒子的速度。

8.3、Attraction(Vector Field):向量场的吸引力强度。

在ParticleSystem与Particle System Force Field中最常见的数值设置有三种,在下面给出

第一种:权重,范围为0-1,例如Attraction的范围等。

第二种:固定参数,固定一个参数,例如粒子发射器的持续时间。

第三种:参数曲线,这种数值设置是粒子系统可以千变万化的根源所在,通过对曲线的调变可以变化出各式各样的粒子效果。

我们着重来讲第三种数值设置(参数曲线)。参数曲线方便了我们想要粒子在什么时间段进行什么样的颜色变化或者效果变化。

1、Color:纯色显示。

2、Gradient:颜色按照梯度进行显示(举例,越迟生成的粒子颜色越接近右端)。

3、Random Between Two Colors:粒子颜色在两个纯色中任选一个。

4、Random Between Two Gradients:粒子颜色在两个梯度中任意选择一个显示。

5、Random Color:在你定义的色谱上任意选择一个颜色作为粒子颜色。

1、Constant:常量。

2、Curve:单条曲线,多了时间的属性,可以根据时间进行变化。可以自行拖拽改变曲线形状获得想要的粒子效果

3、Random Between Two?Constant:在两个常量间随机一个数值。

4、Random Between Two?Curve:跟随着时间,粒子某个属性值为两条曲线围成的区间的该时间点上的随机值。(粒子效果很大的一部分都需要在数值曲线中进行调节)

按照笔者自己的分类习惯,将ParticleSystem的23个功能模块分类为以下六个类别

(一)最基础模块

1、基础模块:ParticleSystem下的物件名(图片中的ParticleSystem)。

2、Renderer:渲染模块。

(二) 发射器模块

1、Emission:发射模块。

2、Shape:形状模块(发射器的形状)。

3、Sub Emitters:添加发射器模块。

(三)粒子生命周期特效控制模块

1、Velocity over Lifetime:粒子生命周期内的速度变化模块。

2、Limit Velocity over Lifetime:粒子生命周期内的限速模块。

3、Force over Lifetime:生命周期内粒子力的变化模块。

4、Color over Lifetime:生命周期内粒子颜色的变化模块。

5、Size over LifeTime:生命周期内粒子大小的变化模块。

6、Rotation over Lifetime:生命周期内粒子旋转属性的变化模块。

(四)粒子自身特效控制模块

1、Color by Speed:根据粒子速度改变粒子颜色模块。

2、Size by Speed:根据粒子速度改变粒子大小模块。

3、Rotation by Speed:根据粒子速度改变粒子速度模块。

4、Texture Sheet Animation:粒子帧动画模块。

5、Trails:路径模块。

6、Noise:噪音模块。

(五)粒子与外界交互的特效控制模块

1、Inherit Velocity:粒子速度继承模块。

2、External Forces:外力模块。(Particle System Force Field组件属于这一块)

3、Collision:碰撞体模块。

4、Triggers:触发器模块。

5、Lights:粒子灯光模块。

(六)自定义模块

Custom Data:自定义模块。

说明:关于over LifeTime模块与by Speed模块的区别

over LifeTime模块:类似花开花落的一生。

by Speed模块:类似跑龙套,当你满足条件则执行。

Unity特效基础——粒子系统

粒子系统最早出现在20世纪80年代,主要用于解决由大量按一定规则运动(变化)的微小物质在计算机上的生成和显示问题。它的应用非常广泛,大的可以模拟原子弹爆炸、星云变化,小的可以模拟水波、火焰、烟火、云雾等,而这些自然现象用常规的图形算法是很难逼真再现的。粒子运动的变化规则可以很简单也可以很复杂,这取决所模拟的对象。

在unity中创建粒子系统有三种方式:

(使用这三种方式创建的粒子系统完全相同)

在层级视图中选择之前创建的Particle System(粒子系统),可以发现在Scene场景视图中右下角多了一个控制窗口,如图3-1所示。

Unity默认的粒子系统有四种数字修改类型,可以通过单击数值后面的三角符号进行切换。以start size为例,如图4-1所示。

1.粒子系统的颜色控制

以粒子系统中的Start color为例,单击Start Color(初始颜色)后的白色块,如图5-1所示:

单击后会显示颜色编辑器,如图所示。

通过单击(RGB0-255)下拉箭头切换颜色模式,有RGB、HSV两种模式。

RGB模式是根据三原色的占比来设置最终颜色,而HSV是根据色彩三要素色相,饱和度和明度来设置颜色。

2.颜色渐变坡度控制

以Color over lifetime(生命周期颜色)之中的颜色编辑器设置为例,如图5-2所示。

选择了Gradient之后单击色块,进入颜色编辑器:

一个粒子系统由多个模块整合而成,如图所示。

1.Duration(持续时间):粒子发射器发射粒子的持续时间,单位为秒。

2.Looping(循环):是否开启循环。

3.Prewarm(预热):预热开启后,粒子系统将会直接播放一个周期后的状态,不会显示有少到多的逐渐产生过程。

4.Start Delay(初始延迟):发射粒子前,等待延迟的时间,单位为秒。

5.Start Lifetime(初始生命周期):粒子的存活时间,单位为秒。

6.Start Speed(初始速度):粒子发射时的速度。

7.Start Size(初始大小):粒子发射时的初始大小。

8.3D Start Rotation(3D坐标旋转):可以设置粒子发射时的3D初始旋转。

9.Start Rotation(初始旋转):设置粒子发射时正面的初始旋转。(粒子系统的贴图默认都是只有正面朝向摄像机来渲染的,所以默认情况下只有一个方向的旋转)

10.Flip Rotation(翻转旋转):设置粒子发射时的翻转旋转。

11.Start Color(初始颜色):粒子发射时的颜色。

12.Gravity Modifier(重力修改器):粒子在生命周期内收到重力的影响。

13.Simulation Space(模拟空间):局部坐标系或者世界坐标系。

14.Play on Awake(唤醒时播放):如果启用该项,粒子会在Gameobject唤醒时(在Start方法执行之前)自动播放。

15.Max Particles(最大粒子数):粒子系统中的最大粒子数量。

列出了常用的一些粒子属性说明,还有部分未列出,可以根据需要查阅相关的文档。

想要掌握粒子系统的使用,只是从字面上理解属性是没办法做到的,在后面的文章中我们将会学习到如何使用粒子系统创建一些特定的效果。

(责任编辑:IT教学网)

更多

推荐网络媒体文章