Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)

这篇具有很好参考价值的文章主要介绍了Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)

一、属性介绍

1、主面板Particle System

Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)

(1)Duration:粒子发射周期

图中,5.00即在发射5秒后进入下一个粒子发射周期。若没有勾选Looping,则5秒后粒子会停止发射。

(2)Looping:粒子按照周期循环发射

让粒子发射时间循环起来,一直发射粒子。

(3)Prewarm:预热系统

开始播放粒子是已经发射了一段时间的,只在Looping循环时才有效。

(4)Start Delay:粒子延时发射

粒子系统创建后隔多久后才开始发射粒子。如果有Prewarm则没法设置延时。0就是不延时;若为5,则5秒后才开始发射。

(5)Start Lifetime:粒子从发生到消失的时间长短
(6)Start Speed:粒子初始发生时候的速度

一般选择两个值之间,点击后面的倒三角,选择Random Between Two Constants。
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
Constant(常量):固定的值,不会变化。
Curve(曲线):用曲线代表Duration时间内的变化。竖轴是这个值的变化,横轴是Duration时间。但注意的是初始的值,出生时的不同,一旦出生了,是其他值控制。
Random Between Two Constants(随机在两个常量间变化):随机值。
Random Between Two Curves(随机在两个曲线间变化):随机曲线。

(7)3D Start Size:3D粒子初始大小

可以让粒子在X、Y、Z三个轴上有不同的尺寸。当粒子是billboard模式时,Z轴调节无意义。

(8)Start Size:粒子初始大小

总体设置初始的尺寸。X、Y、Z三个轴同步大小,单位是米。

(9)3D Start Rotation:3D粒子初始旋转

粒子可以绕着X、Y、Z三个轴设定不同的角度。

(10)Start Rotation:粒子初始旋转

默认是只设置z轴方向旋转角度,值是角度。

(11)Flip Rotation:反跳旋转

主要针对设定的Start Rotation值进行反方向的变化。假如旋转是10。这个值设置为1,就会变成-10。设为0.5就会变成一个从-10~10的随机。

(12)Start Color:粒子初始颜色

颜色上经常有这几个变换:
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
Color(颜色):设置一个颜色。
Gradient(渐变):可以设置一个渐变色。从左到右是Duration时间。
Random Between Two Colors(随机在两个颜色变化):随机颜色。
Random Between Two Gradients(随机在两个渐变变化):随机渐变。
Random Color(随机颜色):它跟Random Between Two Colors最大的不同是可以控制随机颜色的数量。

(13)Gravity Modifier:重力修正器

粒子施加一个向下的力。负值是向上的。注意这个值是一个外部的力,它不随粒子系统缩放而改变。

(14)Simulation Space:模拟空间

就是使用的空间坐标。粒子的运动所使用的空间坐标。
Local(自身): 使用自身粒子系统的游戏物体的坐标。
World(世界):使用世界坐标,就是场景坐标。
Custom(制定):使用另一个物体的坐标。当这个物体坐标变化时,粒子也会跟着变化,比如物体的位移会带动粒子位移。

(15)Simulation Speed:模拟速度

整体改变粒子的运动快慢,注意不只是粒子的速度,而是粒子总体属性在空间位置中的变化,整体放慢或加快。

(16)DeltaTime:变量时间

Delta Time是一个函数。确切意思是上一帧的时间情况。因为设备刷新率的不同,所以一帧消耗的时间也是不一样的。这个Scaled是调节使用时间变化而非帧的变化。每帧走1米和每0.1秒走一米是不一样的。默认是Scaled(缩放的)是正确的。

(17)Scaling Mode:缩放模式

缩放粒子系统时的状况。
Hierarchy(阶层):默认值。
Local(自身):效果上是和Hierarchy一样,如果粒子系统缩放,粒子的运动距离和大小同时被缩放。Gravity Modifier的力不会被缩放。
Shape(形状):只会缩放发射器的大小。

(18)Play On Awake:唤醒就播放

勾掉时,运行时出现粒子系统并不会播放,直到在程序中勾上这个勾才会播放,便于程序控制。

(19)Emitter Velocity:发射速率

是关于粒子移动方式。

(20)Max Particles:最大粒子数

为了节省开支设定粒子数量的上限。

(21)Auto Random Seed:自动随机种子

粒子呈现的状态是由seed种子决定的,相同的seed产生的结果相同。而seed数十分庞大,如果用了随机种子,可能永远不会碰到数值一样、粒子状态一样的情况。

(22)Stop Action:停止行动

当粒子系统发射完了所有粒子之后的程序的处理方式,跟消耗有关。
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
None:无处理,内存被动释放。
Disable:禁用,就是被废弃状态,不会再出现,但是还在内存中。
Destroy:被摧毁掉,内存会直接释放掉。
Callback:添加脚本或者在原有脚本中监听以下函数:

public void OnParticleSystemStopped()

即可监听到粒子系统的完全停止。

(23)Culling Mode:剔除模式

当粒子系统从屏幕中移出的时候,对应的处理方式。
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
Automatic:如果粒子系统是循环发射,则会暂停发射,非循环情况下不会暂停发射。
Pause and Catch-up:暂停粒子播放,当再次移入屏幕时,会做额外计算,使粒子系统看起来像没有被暂停过一样,是耗性能的设置,根据实际情况使用。
Pause:暂停粒子发射。
Always Simulate:不会暂停粒子发射。

(24)Ring Buffer Mode:环形缓冲模式

控制粒子的消失方式,这个模式适合用来做脚印或者弹孔等持续性的效果。
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
Disabled:粒子在自己的生命周期后销毁。
Pause Until Replaced:粒子在生命周期后并不会被销毁,保持最后的形态直至系统中的粒子数超过最大限制后立即被新粒子取代。
Loop Until Replaced:这种模式跟上一种很像,在自己的生命周期后不会销毁,选择该设置后会增加一个Loop Range的选项:
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
可以设置从0 ~ 1的值,这个值表示的是粒子生命周期的比重,比如设置的是0 ~ 0.5,如果粒子的生命周期是2s,那么经过2s后,粒子会重复显示0s ~ 1(2 * 0.5)s这段时间内粒子的效果,直至超过系统最大粒子数后被新粒子取代。

2、发射器Emission模块

粒子发射的速率,以及瞬间发射大量粒子(爆炸效果),可以在该模块中进行设置。
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)

(1)Rate over Time:发射频率按时间

1秒发射的数量。曲线时间轴是Duration时间。

(2)Rate over Distance:发射频率按距离

1米发射的数量。曲线时间轴是Duration时间。

(3)Bursts:迸发

从第几(Time)秒开始。发射多少个(Count)。这次发射循环几次(Cycles)。每次循环间隔多久(Interval)。

Time:粒子爆发的时间,不能超过粒子系统的Duration,就算你填写一个非法的数,也会被强制修改。
Count:如果选择曲线,曲线的横轴是时间轴,代表的是粒子系统的生命周期。有4个配置可以选择.
Cycles:从爆发时间开始的循环次数。
Interval:两次循环的间隔时间,超过粒子系统的Duration无意义。
Probability:每次爆发的可能性。

3、发射器形状Shape模块

发射器形状内部随机位置生成,并能提供初始的力,该力的方向将延表面法线或随机方向发射。
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)

(1)Sphere:球体

Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
Radius:球体半径。

Radius Thickness :发射粒子的体积比例。值为0表示从形状的外表面发射粒子,值为1表示从整个体积发射粒子。

Arc:圆弧,适用于球体、半球、椎体、甜甜圈、圆形边缘。
(1)Mode:模式控制粒子围绕圆弧生成的模式
(Random随机,Loop循环,Ping-Pong乒乓,Burst Spread突发扩张)。
(2)Spread:传播,只在弧的特定角度产生粒子。
(0为禁用,在Arc设定的值下,展现特定的角度来发射粒子,看起来没有那么随机)。

Texture:粒子用来从上边获得颜色纹理。

Position:改变粒子发射的位置。

Rotation:改变粒子发射的旋转。

Scale:改变粒子发射的形状缩放。

Align To Direction:根据粒子的初始行进方向定向粒子。(貌似广告板模式失效,图片朝向都改成了初始速度的方向)

Randomize Direction:将粒子方向朝随机方向混合,设置为0将不起作用,设置为1时粒子方向完全随机。

Spherize Direction:将粒子方向朝球面方向混合,从它们的变换中心向外行进。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向从中心向外(与 Shape 设置为 Sphere 时的行为相同)。

Randomize Position:以随机量移动粒子,直至达到指定值。此属性设置为 0 时,此设置不起作用。任何其他值都会对粒子的生成位置应用一些随机性。

(2)Hemisphere:半球
(3)Cone:椎体
(4)Donut:甜甜圈
(5)Box:盒子
(6)Mesh,Mesh Renderer,Skinned Mesh Renderer:网格和网格渲染

Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
Type:指定从何处发射粒子。(Vertex从顶点发射粒子,Edge从边上发射,Triangle从三角形发射)

Mode:如何为每个新粒子选择网格上的位置。(Random随机位置的粒子,Loop从网格中下一个顶点发射每个新粒子,Ping-Pong类似Loop,但会在每个循环后沿网格顶点交替方向)

Mesh:提供发射器形状的网格。

Single Material:指定是否从特定子网格(由材质索引标识)发射粒子。(启用此属性,会显示一个数字字段,可以用该字段指定材质索引号)

Use Mesh Colors:使用网格顶点颜色调整粒子颜色,或者,如果顶点颜色不存在,则使用材质中的着色器颜色属性color或者tincolor。

Normal Offset:在距离网格表面多远处发射粒子(在表面法线方向上)

(7)……
4、Texture Sheet Animation模块
粒子的图形不必是静止图像。此模块允许您将纹理视为可做为动画帧进行播放。

Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)

(1)Mode

分别有Grid模式和Sprites模式。

(2)Tiles

纹理在水平和垂直方向上划分的区块数量。
若纹理为3行4列,则X、Y分别填入3,4。

(3)Animation

动画模式。可设置为Whole Sheet或Single Row
(即精灵图集的每一行代表一个 单独的动画序列)

(4)Time Mode

选择粒子系统如何在动画中对帧进行采样。

(5)Frame over Time

通过一条曲线指定动画帧随着时间的推移如何增加。

(6)Start Frame

允许指定粒子动画应从哪个帧开始。

(7)Cycles

动画序列在粒子生命周期内重复次数。

(8)Affected UV Channels

允许具体指定粒子系统影响的UV流。

5、Lights模块
使用此模块可将实时光照添加到一部分粒子。

Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)

(1)Light

分配一个光照,说明粒子的灯光应该是什么样子。

(2)Ratio

一个介于0和1之间的值,表示将接受光照的粒子的比例。

(3)Random Distribution

选择是随机分配还是定期分配光照。设置为true时,每个粒子都有根据ratio的值随机接受光照的机会。较高的值可增加粒子接受光照的概率。为false时,由ratio控制新创建的粒子接受光照的频率。

(4)Use Particle Color

设置为true的时候,光照最终颜色将通过其附加到的粒子的颜色进行调制。为false则不作任何更改。

(5)Size Affects Range

启用此属性在光照中指定的Ratio(范围)将受到粒子大小的影响。

(6)Alpha Affects Intensity

启用此属性后在光照的Intensity(强度)将受到粒子Alpha影响。

(7)Range Multiplier

使用此曲线在粒子的生命周期内将一个自定义乘数应用于光照范围。

(8)Intensity Multiply

使用此属性在粒子的生命周期内将一个自定义乘数应用于光照强度。

(9)Maximum Lights

使用此设置可避免意外创建大量光照,大量光照可能会使编辑器无响应,且影响程序性能。

6、Renderer模块

Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)

(1)Render Mode

Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
Billboard:粒子始终面向摄像机。

Stretched Billboard:粒子面向摄像机,但是会应用各种缩放。
(Camera Scale:根摄像机运动拉伸粒子。为0禁用相机运动拉伸)
(Velocity Scale:根据粒子速度比例拉伸粒子。为0禁用)
(Length Scale:沿着粒子速度方向根据粒子当前大小按比例拉伸粒子。为0则会使粒子消失)

Horizontal Billboard:粒子平面与XZ“地板”平面平行。

Vertical Billboard:粒子在世界y轴上直立,但面向摄像机。
Mesh:从3D网格而非从纹理渲染粒子。(粒子会变成立体的)
None:使用Trails模块时,如果只是想渲染轨迹并隐藏默认渲染,则可使用此属性。(不启用Trails模块时,粒子会消失)

(2)Normal Direction

用于粒子图形的光照法线的偏差。值为1表示法线指向摄像机,而值为0表示法线指向屏幕中心。(仅适用于Billboard模式)

(3)Material

渲染粒子的材质

(4)Sort Mode

绘制粒子的顺序。

(5)Sorting Fudge

粒子系统排序的偏差。较低的值会增加粒子系统在其他透明对象(包括其他粒子系统)上绘制的几率。对整个系统有影响,对单个粒子排序没影响。

(6)Min Particle Size

最小粒子大小(仅当Billboard模式)

(7)Max Particle Size

最大粒子大小(仅当Billboard模式)

(8)Render Alignment

使用下拉单选框选择粒子公告牌面向的方向。
(View:粒子面向摄像机平面)
(World:粒子与世界轴对齐)
(Local:粒子与游戏对象的变换组件对齐)
(Facing:粒子面向摄像机游戏对象的直接位置)

(9)Flip

在指定轴上镜像一定比例的粒子。较高的值会翻转更多的粒子。

(10)Allow Roll

控制面向摄像机的粒子是否可以围绕摄像机的z轴旋转,禁用此属性对VR应用特别有用。

(11)Pivot

修改粒子的中心轴点。此值是粒子大小的乘数。

(12)Visualize Pivot

在Scene视图中预览粒子的轴心点。

(13)Masking

设置粒子系统渲染的粒子在与精灵遮罩交互的行为方式。
(No Masking:不与厂家中任何精灵遮罩交互)
(Visible Indide Mask:在由精灵遮罩覆盖的地方是可见的,而在遮罩外部不可见)
(Visble Outside Mask:在精灵遮罩外部是可见的,而在遮罩内部不可见,精灵遮罩会隐藏其覆盖的粒子部分)

(14)Apply Active Color Space

在线性颜色空间中渲染时,系统会在将粒子颜色上传到 GPU 之前从伽马空间转换粒子颜色。

(15)Custom Vertex Streams

配置材质的顶点着色器中可用的粒子属性。

(16)Cast Shadows

启用此属性,粒子在光下会产生阴影。(Two Sided允许从网格的任一侧投射阴影,Shadows Only使阴影可见,网格不可见)

(17)Receive Shadows

决定阴影是否可投射到粒子上。只有不透明材质才能接受阴影。

(18)Shadow Bias

沿着光照方向移动阴影以消除因使用公告牌来模拟体积而导致的阴影瑕疵。

(19)Motion Vectors

运动矢量

(20)Sorting Layer ID

渲染层级

(21)Order in Layer

此渲染器在排序图层中的顺序。

(22)Light Probes

基于探针的光照插值模式。

(23)Reflection Probes

如果启用此属性,并且场景中存在反射探针,则会为此游戏对象拾取反射纹理,并将此纹理设置为内置的着色器 uniform 变量。

7、其他模块暂不介绍

二、火焰粒子系统案例制作

1、火焰素材
本案例以下面火焰素材为例。

Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)

2、创建粒子系统

Hierarchy面板中,在需要创建粒子系统的物体下,鼠标右击,选择Effects | Particle System。对其重命名为HuoYan。

3、创建材质球

在Project面板中创建一个新的材质New Material,重命名为HuoYan,一定要将其Shader修改为Additive(Mobile/Particles/Additive),这个模式主要是可以去除透亮贴图中的黑色部分。

4、贴图

(1)将火焰素材图片拖入Textures文件夹中。
(2)将贴图赋给材质,再将材质拖给Hierarchy面板中的粒子系统。
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)

5、属性修改

(1)务必勾选上纹理层动画模块Texture Sheet Animation,并设置其贴图的行列Tiles,本例中改为2,2,如下图所示。
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
(2)通常将粒子系统Renderer里的最大粒子大小Max Particle Size由初始的0.5修改为1(也就是视窗大小,它的有效值为0-1)。
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
(3)此时粒子都是朝着一个方向,非常地规律,没有火焰的样子,这时我们需要调整它的初始旋转角度Start Rotation,选择“倒三角”下的Random Between Two Constants(-360,360)。
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
(4)更改发射器Emission模块中的数值,使火焰更加逼真。
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
(5)还可以对其形状做修改。
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
(6)对火焰颜色进行一个调整,用到Color over Lifetime。下图箭头中,上面代表透明度,下面代表颜色。
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
(7)还可以修改其初始生命周期Start Lifetime,初始速度Start Speed,初始大小Start Size等属性。

6、实现效果图

Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)文章来源地址https://www.toymoban.com/news/detail-439686.html

到了这里,关于Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [Unity3D] 记录一下ScrollView中粒子无法被Mask遮挡的问题解决过程

    项目解决问题1所使用的Shader链接:https://www.codenong.com/cs107033982/ 解决思路: 1、粒子特效使用的Mobile/Particles/Additive(Shader)材质球不包含模板测试,添加模板测试后可以与普通Image一样被Mask遮挡,所以我们给粒子的材质球加上模板测试。 2、普通Image使用默认的材质球,该材质球

    2024年02月07日
    浏览(46)
  • 【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 :Unity游戏demo – 😶‍🌫️版本: Unity2021 😶‍🌫️适合人群:Unity初学者进阶 😶‍🌫️学习目标:3D赛车游戏的基础制作 😶‍🌫️技能

    2024年02月09日
    浏览(61)
  • Unity3D 获取子孙物体并修改材质球属性

    如图要获取划线物体并修改其材质球: private Transform[] FindChild; public Material ChangeMat;//变换后的材质球 private Material mat; void Start() {         FindChild = this.gameObject.GetComponentsInChildrenTransform(true);//true表示包括隐藏物体的查找         foreach (Transform child in FindChild)         {  

    2024年02月15日
    浏览(62)
  • unity3D基础操作之01--unity3d窗口界面介绍

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 1、Scene场景编辑窗口; 2、Game游戏运行窗口; 3、Hierarchy场景物体列表窗口; 4、Project项目资源列表窗口; 5、Inspector属性编辑列表窗口; 6、其他常调节窗口 在屏幕左上方为场景编辑窗口Scene,在场景编

    2024年02月06日
    浏览(76)
  • Unity3D 入门

    首先看到Scene界面,我们布置游戏场景中的游戏对象基本是在这个界面完成的 鼠标滚轮键按住:能够拖拽平面,不移动对象 鼠标右键按住:能够旋转我们观察界面的视角,不移动对象;与此同时可以使用wasd进行移动 鼠标左键:操作对象(Scene界面左侧工具栏) 第一个View T

    2024年02月16日
    浏览(35)
  • Unity3D学习之Unity基础——3D数学

    从这几部分学习 都是用于提供数学计算的 Mathf是结构体,Math是类 Mathf是Math的第二次封装,更适合游戏开发 2.1.1 PI Π PI 2.1.2 取绝对值 Abs 2.1.3 向上取整 CeilToInt 2.1.4 向下取整 FloorToInt 2.1.5 钳制函数 Clamp 第一个参数,如果在第二个和第三个参数之间,就是合法的 如果小于第二个参

    2024年02月20日
    浏览(86)
  • Unity读书系列《Unity3D游戏开发》——基础知识

    本篇对应标题书籍的第一章基础知识,也就是unity的基本常识和工作流的说明。 Unity目前用于创建2D和3D游戏、模拟应用程序、可视化体验以及其他虚拟现实(VR)和增强现实(AR)应用,游戏工业两开花。 Unity初版是在2005年发布的,开始时用unity3.X、4.X这样的名称进行版本更新

    2024年01月18日
    浏览(82)
  • 【瑞模网】Unity3D基础:贴图与材质球

    一、贴图与材质球 材质(Material):物体的质地,物体看起来是什么做的 贴图(Texture):普通的材质图片 贴图 + 着色器(Shader) = 材质球 所谓着色器(Shader)实际上就是一小段程序

    2023年04月12日
    浏览(61)
  • 【unity3D】TileMap基础知识(详细版)

    💗 未来的游戏开发程序媛,现在的努力学习菜鸡 💦本专栏是我关于游戏开发的学习笔记 🈶本篇是unity的TileMap基础知识 window—2D—Tile Palettee 选择工具(Select Tool) 选择想要使用的瓦片,可以点击选择或拖拽多选选择, 快捷键S 。 移动工具(Move Tool) 可以选择并移动瓦片位

    2024年02月06日
    浏览(48)
  • 【Unity3D】button组件无法使用onclick与image组件无法改变属性(如fillAmount等)的解决办法

    如果你遇到了:    AssetsScriptsGame.cs(37,16): error CS0079: The event \\\'Button.onClick\\\' can only appear on the left hand side of += or -= ArgumentException: GetComponent requires that the requested component \\\'Button\\\' derives from MonoBehaviour or Component or is an interface. UnityEngine.GameObject.GetComponent[T] () 检查一下编译器是否给你

    2024年02月15日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包