欢迎大家继续学习 Unity 游戏编程基础 本节我们讲解
Unity 中的粒子系统 本节将采用
PPT 讲解加项目演示的方式,介绍粒子系统相关的知识要点
我们在演示环节,演示了粒子系统在《慕课英雄》第一人称 完整版中的应用。
大家可以根据自己的专业基础和学习能力 从以下三种方法中选择一种来学习。
第一种方法 先看 PPT 讲解,对相关知识有一个系统的了解
然后观看项目演示视频,学习知识要点的应用 第二种方法,先看项目演示视频,了解知识要点的具体应用
再回到 PPT 讲解阶段,有针对性的学习相关知识要点
第三种方法,跳过 PPT 讲解,直接进入项目演示
通过理解项目中知识点的运用,完成相关知识要点的学习 不去回顾 PPT 讲解。
下面我们进入 PPT 讲解阶段 粒子是在三维空间中
渲染的二维图像,用于表现爆炸、 烟、 火、 水等粒子效果 本节我们讲解 Unity
的手里剑粒子效果 手里剑粒子系统采用模块化的管理方式,使得个性化的粒子模块配合粒子曲线编辑器
使用户更容易创造出各种缤纷复杂的粒子效果 [空白_录音]
下面我们介绍在 Unity 编辑器中,创建粒子系统的步骤 在 Hierarchy
视图中,点击鼠标右键,选择 Particle System,即可完成粒子系统的创建
粒子系统创建完成后,我们可以在场景视图中看到粒子系统的初始效果 在
Hierarchy 视图中,点击粒子系统对象
我们发现场景视图中的粒子系统开始播放动画 同时在场景视图的右下角出现了
Particle Effect 它表示粒子系统效果控制器。
下面我们介绍粒子系统效果控制器的相关设置 Pause
这么一个按钮,用于控制粒子系统的播放与暂停 Stop 按钮用于停止粒子系统的播放。
Playback Speed 表示粒子系统的播放速度。
Playback Time 表示粒子系统的播放时间。
Particle Count 表示粒子系统包含的粒子个数 本页 PPT 给出
Inspector 视图中,粒子系统对象包含的粒子系统组件 我们通过设置粒子系统组件中各个模块的参数
更改粒子系统的播放效果 下面我们通过简易喷泉粒子效果的制作
讲述粒子系统组件的传统参数 首先是粒子系统初始化模块
用于设置粒子的初始属性,下面我们介绍该模块中的一些常用 属性。
Start Lifetime 表示粒子初始生存周期 我们将它参数的取值设为
0.5 到 4 之间的随机值 Start Speed
表示粒子初始速度 我们将它参数的取值设为 9 到 10 之间的随机值
Start Size 表示粒子初始大小 我们将它参数的取值设为
0.1 到 0.3 之间的随机值 Start Rotation
表示粒子初始朝向 我们将它参数取值为 -180 到 180
之间的随机值 Gravity 表示粒子的重力设置。
我们将它参数设置为 1 Max Particles 表示粒子的最大个数。
我们将它参数设为 10000 以上是粒子系统初始化模块的参数设置
本页 PPT 给出粒子系统初始化设置完成后,粒子系统的效果图 下面是
Emission (发射模块)
该模块用于设置与粒子发射相关的参数 我们介绍 Emission (发射模块)的 Rate 参数。
该参数表示粒子发射速率 我们将它参数设置为 5000。
本页 PPT 下方给出 Emission (发射模块) 设置完成后,粒子效果示意图
我们发现粒子的发射速率明显增加 接下来是 Shape
(形状模块) 该模块用于设置粒子系统的发射形状 下面我们介绍该模块中的一些常用属性。
Shape 表示粒子发射形状 我们将它参数设为 Cone 圆锥,Angle
表示 Cone 形状的发射角度设置 我们将它参数设为 10。
Radius 表示 Cone 形状的发射半径设置 我们将它参数设为 0.3,本页 PPT 右侧给出
Shape (形状),设置完成后 粒子系统的效果图
下面是 ColorOverLifetime (粒子生命周期颜色模块)
该模块用于管理粒子颜色随时间的变化情况 我们使用
Gradient,梯度变化的方式,设置粒子颜色的变化情况 我们将粒子初始颜色的
RGB 值设为 0,200,255 将粒子末尾颜色的
RGB 值设为 0,255,255 本页 PPT
右侧给出 ColorOverLifetime,设置完成后,粒子系统的效果图
下面 是 SizeOverLifetime
(粒子生命周期尺寸模块) 该模块用于管理粒子尺寸随时间的变化情况
我们使用两条曲线设置粒子尺寸的变化范围 第一条曲线从
1.0 到 0.5,第二条曲线从 0.8 到 0.0 本页 PPT
给出,最终简易喷泉粒子系统的效果图 下面我们讲解粒子系统在项目中的应用
[空白_录音] 本页
PPT 给出本项目中,粒子系统 效果的示意图。
本项目中使用粒子系统制作了以下 3 个粒子效果
首先,场景中的火焰效果,该粒子效果在场景中持续播放。
其次,枪械开火效果 该粒子效果在玩家开枪时播放。
最后,敌人流血效果 该粒子效果在敌人受伤时播放。
枪械开火效果与敌人流血效果 需要使用脚本代码控制播放。
下面我们讲解如何使用脚本代码,实现粒子系统的控制播放 本节 PPT
给出 EnemyHealth 脚本中
创建敌人流血粒子效果的对象,需要执行的代码片段 首先我们定义
GameObject 类型的 hurtEffect 字段 表示敌人流血粒子效果对象。
其次我们定义 Transform 类型的 hurtEffectTransform 字段 表示粒子对象的生成位置。
下面我们在 TakeDamage 函数中,实现粒子对象的创建 我们使用
instantiation 函数,在 hurtEffectTransform 位置生成粒子对象
hurtEffect [空白_录音]
本页 PPT 给出 PlayerAttack 脚本中
创建枪械开火粒子效果对象,需要执行的代码片段 首先我们定义
GameObject 类型的 shootingEffect 字段 表示枪械开火粒子效果对象。
其次我们定义 transform 类型的 shootingEffectTransform 字段 表示粒子对象的生成位置。
下面在 shoot 函数中,现象粒子对象的创建 我们使用 Instantiate
函数,在 shootingEffectTransform 位置生成粒子对象,shootingEffect 本页 PPT
给出 ParticleController
脚本中 控制粒子系统播放已删除的代码片段,该脚本需要
绑一道敌人流血粒子效果对象和枪械开火粒子效果对象 首先我们使用
GameObject lead GetComponent 函数 获取对象的粒子系统组件。
其次我们使用 ParticleSystem lead Play 函数 播放粒子系统。
最后我们使用 gameobject lead Destroy 函数 删除播放完毕的粒子效果对象,以上内容是控制
敌人流血粒子效果以及枪械开火粒子效果播放的代码实现 [空白_录音]
下一节,我们讲解 Unity 中的线渲染器
[空白_录音] 最后进入演示环节。
演示环节的内容包括场景中火焰效果的制作、 敌人流血粒子效果的制作与控制,以及枪械开火
粒子效果的制作与控制