在Unity中打开已经建立好的Starter Project
。 里面的资源分为几个文件夹:
- Materials:保存火材料。
- Models:包含火炬和炸弹模型及其材料。
- Prefabs:保存炸弹预制件。
- Scenes:包含火炬和炸弹场景。
- Scripts:保存初始脚本。
- Textures:包含火材料的纹理。
现在您已经看到了所有内容的存储位置,您可以开始了解粒子系统在Unity中的工作原理。
二、Adding a Particle System粒子系统通常在预定义空间内的随机位置发射粒子,其可具有类似球形或锥形的形状。 系统确定粒子本身的寿命,当寿命到期时,系统会破坏粒子。
粒子系统的一个好处是它们是可以添加到场景中任何GameObject
的组件。 想让你的鲨鱼从他们的眼睛里发出激光吗? 只需在鲨鱼眼GameObject
中添加一个粒子系统,你的鲨鱼就会不可阻挡!
从项目窗口打开Torch
场景并运行场景:
目前没有多少事情发生。 火炬挂在墙上,但没有火可见。 您需要先添加粒子系统。
停止运行场景并在层次结构中选择TorchFireParticles
。 在Inspector
中,单击Add Component
按钮。 搜索Particle System
并单击以添加它:
注意:您可能已经注意到没有将粒子系统直接添加到MedievalTorch GameObject
。 这是因为粒子将从火炬的中间发出,而不是从顶部的燃料容器中发出。
播放你的场景;你会看到你已经发射了粒子:
注意:您可能会看到粉红色颗粒而不是白色,这似乎是设置默认纹理的Unity bug。 如果是这种情况,请不要担心:您将很快设置适当的火焰纹理。 如果您想立即修复它,请单击粒子系统的Renderer
部分,单击Material
字段旁边的Dot
,然后在弹出的窗口中双击Default-Particle
。
当您选择带有附加粒子系统的GameObject
时,您会注意到场景视图右下角有一个黑色对话框。 此对话框允许您模拟或停止粒子系统。 单击Simulate
可激活粒子系统并将按钮更改为Pause
按钮。 要停止模拟器,请单击Stop
按钮。
此对话框对于设计在固定时间轴上运行的粒子系统非常有用,例如爆炸。
三、A Closer Look at a Particle System看看Inspector
,你会注意到你添加的粒子系统组件有几个subsections
:
这些subsections
中的每一个都称为Module
。 这些模块包含粒子系统的设置。 默认情况下扩展的模块称为Main
模块:
Main
模块是Unity
中任何粒子系统的肉和骨骼。 最常见的粒子设置在这里:
- Duration:粒子系统运行的时间长度(以秒为单位)。 将其保留为默认值
5.00
。 - Looping:反复发射粒子,直到粒子系统停止。 达到
Duration
时间后,循环重新开始。 火需要持续燃烧,因此请启用此功能。
On & off
- Prewarm:仅在启用
Looping
时使用。 粒子系统就好像它已经在启动时完成了一个完整的循环。
On & off
为了您的火力效果,请将此禁用状态设置为使其看起来像火炬一样被点燃。
- Start Delay:粒子系统开始发射之前的延迟(以秒为单位)。 将其保留为默认值0。
- Start Lifetime:粒子的初始生命周期(秒)。 经过这段时间后,粒子被破坏。
Top: 8 seconds Bottom: 3 seconds
将生命周期设置为4秒;这确保了火焰不会太高。
- Start Speed:粒子的初始速度。 颗粒的速度越大,它们就越分散。
Top: 2 Bottom: 10
将速度设置为0.75;这将使火焰效果更慢,更密集。
注意:在修改粒子系统的设置时,您将在Game Window
中看到它的预览。 在阅读本教程的同时,请密切关注此预览。
在继续之前,请运行场景以查看更改的效果:
你已经设置了火炬,但火焰效果仍然有很多不足之处。
可以通过手动调整Start Speed 速度曲线实现不同时间点的加速度等特效。
值得庆幸的是,主模块(Main module)
还有其他选项可以进一步改善割炬的形状和行为。
四、More Main Module Properties
在层次结构中选择TorchFireParticles GameObject
,然后向下滚动到粒子系统。 在主模块下,查看以下属性:
起始大小:粒子的初始大小。
- Start Size:粒子的初始大小。
Top: 0.2 Bottom: 1
将大小设置为3;这是一个易于管理的尺寸,可让您更清晰地看到各个粒子。
- Start Rotation:粒子的初始旋转角度。
Top: 0° Bottom: 45°
保持旋转0°;粒子是圆的,所以你几乎不会注意到差异。
- Start Color:颗粒的初始颜色。 将颜色保持为纯白色的默认值
(255,255,255)
;你会通过纹理为火焰着色。 - Gravity Modifier:缩放在
Unity
的Physics Manager
窗口中设置的重力值。 如果设置为0,则重力将关闭。
上图是来自重力修正( gravity modifier )
设置为1的系统,这使得粒子像瀑布一样向下流动。 将系统中的重力保持为0;粒子将以您在Start Speed
中设置的速度向上移动。
- Simulation Space:在粒子系统中移动
Local Space
中的粒子。 在World Space
中,粒子一旦发射就会自由移动。
Top: local space Bottom: world space
将模拟集保留为Local Space
。 只有移动粒子系统后才能看到效果。
-
Play On Awake:启用后立即开始发光。 如果关闭此选项,则必须通过脚本或动画系统手动启动粒子系统。 保持此设置,因为您希望在场景开始播放时启动火。
-
Max Particles:系统可能同时存活的最大粒子数。 如果您尝试发射的粒子多于此粒子,则根本不会发射粒子。 此设置主要是出于性能原因,在这种情况下,
1000
个粒子的默认值绰绰有余。
哇,这是一个清单! 但结果,您已经学会了如何将粒子系统添加到场景中以及如何根据自己的喜好自定义它。
再次运行场景以查看更改的效果:
它每次看起来更有点像火,不是吗?
但它需要更多的粒子。 为此,您需要更改系统的emission
。
发射(Emission)
模块根据您的需要处理系统中发射粒子的数量和时间,以创建从连续流动到突然爆发的粒子的任何事物。
在仍在粒子系统的Inspector
中时,单击Emission
模块标题:
这打开了Emission
模块:
Time over Time
表示每秒发出的粒子数。 将时间比率设置为15
。
再次运行你的场景;你的粒子系统现在看起来更像是燃烧的火焰。
不可否认,它仍然看起来像烟雾。 但到目前为止,这是本教程中最大的变化:自定义纹理!
六、Adding a Custom Texture所有粒子都有一个粒子材料和一个定义它们外观的纹理。 你可以用默认纹理做很多事情。 通过改变纹理,您可以创建魔法星,烟雾,当然还有火焰等效果。
改变粒子纹理非常容易。 到目前为止,粒子已经使用Default-Particle
材质在屏幕上绘制,该材质是具有圆形渐变纹理的粒子材质:
要更改材质,请在层次结构中选择TorchFireParticles GameObject
。 然后在Inspector
中找到粒子系统组件并打开粒子系统的Renderer
模块。
在Project View
中打开Materials
文件夹,然后将FireMaterial Material
拖动到Material
属性:
最后,运行场景以查看正在使用的自定义纹理:
你能感受到热量吗? 虽然火焰有点太宽;要解决这个问题,你必须改变粒子系统的形状。
总结 : 常要调试的几个地方引用:https://www.jianshu.com/p/424dc71950dd