美文网首页
Unity开启篇(十) —— Unity粒子系统简介(一)

Unity开启篇(十) —— Unity粒子系统简介(一)

作者: 刀客传奇 | 来源:发表于2019-01-14 20:44 被阅读88次

    版本记录

    版本号 时间
    V1.0 2019.01.14 星期一

    前言

    Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件。其编辑器运行在Windows 和Mac OS X下,可发布游戏至WindowsMacWiiiPhoneWebGL(需要HTML5)、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac 所支持。网页游戏 坦克英雄和手机游戏王者荣耀都是基于它的开发。
    下面我们就一起开启Unity之旅。感兴趣的看下面几篇文章。
    1. Unity开启篇(一) —— Unity界面及创建第一个简单的游戏 (一)
    2. Unity开启篇(二) —— Unity界面及创建第一个简单的游戏 (二)
    3. Unity开启篇(三) —— 一款简单射击游戏示例 (一)
    4. Unity开启篇(四) —— 一款简单射击游戏示例 (二)
    5. Unity开启篇(五) —— 一款简单射击游戏示例 (三)
    6. Unity开启篇(六) —— Unity动画简介 (一)
    7. Unity开启篇(七) —— Unity动画简介 (二)
    8. Unity开启篇(八) —— Unity声音简介(一)
    9. Unity开启篇(九) —— Unity声音简介(二)

    开始

    首先看下写作环境

    C# 6, Unity 2017.x, Unity

    Unity的粒子系统既健壮又功能丰富。 在本教程中,您将学习它,以创建火灾和爆炸。

    粒子系统就像盐;只需少量就可以为你正在烹饪的任何东西添加额外的“味道”。 不以某种方式使用粒子系统的现代游戏可能会感到非常乏味。

    回到过去,你需要黑色的图形编程技术才能创造出一缕烟雾。 值得庆幸的是,Unity使用名为Shuriken的模块化内置粒子系统创建粒子系统非常简单,该系统易于学习,但可以让您创建复杂的效果。

    在本教程中,您将学习以下内容:

    • 如何在Unity中添加新的粒子系统。
    • 最常用的粒子系统模块的作用以及如何使用它们。

    本教程有两个主要部分;在第一部分中,你将构建火炬的火焰。 在第二部分中,您将创建炸弹爆炸效果。


    Getting Started with Particle Systems

    在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中看到它的预览。 在阅读本教程的同时,请密切关注此预览。

    在继续之前,请运行场景以查看更改的效果:

    你已经设置了火炬,但火焰效果仍然有很多不足之处。 值得庆幸的是,主模块(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:缩放在UnityPhysics 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


    Introducing the Emission Module

    发射(Emission)模块根据您的需要处理系统中发射粒子的数量和时间,以创建从连续流动到突然爆发的粒子的任何事物。

    在仍在粒子系统的Inspector中时,单击Emission模块标题:

    这打开了Emission模块:

    Time over Time表示每秒发出的粒子数。 将时间比率设置为15

    再次运行你的场景;你的粒子系统现在看起来更像是燃烧的火焰。

    不可否认,它仍然看起来像烟雾。 但到目前为止,这是本教程中最大的变化:自定义纹理!


    Adding a Custom Texture

    所有粒子都有一个粒子材料和一个定义它们外观的纹理。 你可以用默认纹理做很多事情。 通过改变纹理,您可以创建魔法星,烟雾,当然还有火焰等效果。

    改变粒子纹理非常容易。 到目前为止,粒子已经使用Default-Particle材质在屏幕上绘制,该材质是具有圆形渐变纹理的粒子材质:

    要更改材质,请在层次结构中选择TorchFireParticles GameObject。 然后在Inspector中找到粒子系统组件并打开粒子系统的Renderer模块。

    Project View中打开Materials文件夹,然后将FireMaterial Material拖动到Material属性:

    最后,运行场景以查看正在使用的自定义纹理:

    你能感受到热量吗? 虽然火焰有点太宽;要解决这个问题,你必须改变粒子系统的形状。

    后记

    本篇主要讲述了Unity粒子系统,感兴趣的给个赞或者关注~~~

    相关文章

      网友评论

          本文标题:Unity开启篇(十) —— Unity粒子系统简介(一)

          本文链接:https://www.haomeiwen.com/subject/vllldqtx.html