一、完成效果

视频地址
代码传送门

二、 ParticleSystem 的基本用法

1. main 面板的基本属性

  • Duration:发射器发送粒子持续的时间
  • Looping:是否循环发射粒子
  • Prewarm:在Looping勾选之后才能使用,翻译是预热粒子发射。
  • Start Delay:发射延迟时间,暂停x秒后开始发射粒子
  • Start Lifetime:粒子的生命周期,有Constant,Curve,Random Between Two Constants和Randow Between Two Curves四种类型可以选择
  • Start Speed:粒子被创建时具有的速度
  • Start Size:粒子被创建时具有的初始大小
  • 3D StartRotation:需要往一个方向旋转粒子时候使用
  • Start Rotation:粒子初始旋转
  • RandomizeRotation:随机旋转粒子方向
  • Start Color:初始颜色
  • Gravity Modifier:修正重力
  • Simulation Space:发射坐标,Local是默认的,也可以选择World或者Custom。选择Local,粒子属于本地粒子发射器;选择World,移动粒子发射器,已经发射的粒子不会随着发射器移动;Custom,粒子跟着指定的物体移动
  • Simulation Speed:模拟Update
  • Delta Time
  • Scaling Mode:三种选择,Local:忽略父级的缩放;Hierarchy:跟随父级缩放;Shape:跟随初始位置
  • Play On Awake:是否Awake时就播放
  • Max Particles:一个duration内最多发射的粒子数目*
  • Auto Random Seed:随机种子
  • Stop Action:是否停止使用粒子系统

2. Shape 组件

  • shape:发射粒子的形状
  • angle:发射粒子的角度
  • radius:发射的粒子的半径
  • radiusThickness:发射粒子的形状厚度
  • arc:发射粒子的圆弧的角度

3. ColorOverLifeTime组件

ColorOverLifeTime 可以根据生命周期改变粒子颜色,其中上面是调整颜色,下面可以调整透明度

4. SizeOverLifeTime组件

与上一个类似,SizeOverLifeTime 可以根据生命周期调整粒子的大小。点击上面的线段可以新建一个拐点,因此可以创造出各式各样大小变化的粒子。

5. Render组件

renderer主要是用于粒子效果的渲染,常用的是对其参数material进行设置。

二、 烛光的制作

首先第一步进行Renderer组件的设置,在我们的粒子上进行贴图。不先进行这一步操作的话很难根据效果调整粒子大小。
这一步只需要更改 materialtailmaterial 即可,其他的可以保留默认设置值。
这里我使用的材料是 assets store 中的 smoke 包
完成后的设置如下图

接下来在main面板中进行基础的粒子设置。我将发射器发送粒子持续的时间设置为1秒,生命周期设置为2秒,开始发射的速度为4,粒子大小为5。这些参数可以根据想要的效果自己做调整。

成了上一步之后对粒子的形状进行调整
首先将 angle 设置为0,因为烛光比较小,所以半径 radius 被设置为 0.3,另外,为了让烛光是向上的,需要设置 rotation.x = -90

完成后的火焰就已经初具效果了。但是看起来还不太真实

考虑到火焰是底部小,中部大,上部小的,因此设置 SizeOverLifetime,调整它的变化曲线

效果立竿见影

最后再对烛光的颜色进行调整,进入 ColorOverLifeTime
调整粒子各个阶段的颜色和透明度,使其由蓝色到橙红色,并且最后逐渐透明消失


完成效果

再加上背景图

最后根据需要可以增加一些效果,比如实现蜡烛在风力过大时的熄灭效果
蜡烛熄灭时,粒子的速度减慢,颜色变黑生成黑烟,并且向上飘动,所以函数中设置如下

void putOut() {ParticleSystem.MainModule main = particleSystem.main;main.loop = false;main.startLifetime = 2f;main.startSize = 2f;main.startSpeed = 2f;forceMode.x = 0;    Gradient grad = new Gradient();grad.SetKeys(new GradientColorKey[] { new GradientColorKey(Color.black, 2.0f) }, new GradientAlphaKey[] { new GradientAlphaKey(1.0f, 0.0f), new GradientAlphaKey(0.0f, 2.0f) });colorMode.color = grad;
}

熄灭效果

其他的效果比如烛光增强减弱,以及向两边飘动等都非常简单,可以直接到 github 上参考代码。

Unity3D -- ParticleSystem 烛光制作相关推荐

  1. Unity3D粒子系统之制作火焰特效

    Unity3D粒子系统之制作火焰特效 本文将会介绍如何使用Unity内的粒子系统制作烟雾效果. 如果想了解Unity粒子系统中的基础属性,可以看这篇博客:Unity3D粒子系统之基础属性介绍 先上预览 ...

  2. Unity3D ParticleSystem粒子系统(3.5版)【初级】

    原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 QQ群:[119706192]本文链接地址: Unity3D ParticleSystem粒子系统(3.5版)[初级] 创建"粒 ...

  3. Unity3d数字模型制作规范(更多资讯资料群:193521697邀请码:10026)

    Unity3d数字模型制作规范 本文提到的所有数字模型制作,全部是用3D MAX建立模型,即使是不同的驱动引擎,对模型的要求基本是相同的.当一个VR模型制作完成时,它所包含的基本内容包括场景尺寸.单位 ...

  4. Unity3d 数字模型制作规范

    数字模型制作规范 本文提到的所有数字模型制作,全部是用3D MAX建立模型,即使是不同的驱动引擎,对模型的要求基本是相同的.当一个VR模型制作完成时,它所包含的基本内容包括场景尺寸.单位,模型归类塌陷 ...

  5. [unity3d][通过代码]制作模型,动态生成模型,通过点画模型

    代码制作模型的教程 简介 下面对基础知识进行讲解 Mesh的属性: 画板 通过代码制作模型的一个demo 工程简介 场景1 二场景 三场景: 四场景: 五场景: 六场景: 结束 简介 大家好 我是谢斯 ...

  6. unity3d游戏场景制作

    运用unity3d熟练,不仅可以更巧妙的熟练制作出游戏更重要的是可以做到将自己完美的想象发挥的淋漓尽致. UniSky是Unity3d的一款模拟环境天气的插件,使用它可以简单的实现呼风唤雨的各种功能. ...

  7. Unity3D学习:制作粒子光环特效

    最近看到一个网站,感觉里面的特效不错http://i-remember.fr/en 所以我尝试制作一下里面的粒子光环,鼠标悬停中间的按钮就会粒子收缩,移开就会扩散,先上效果图如下: 下面讲讲思路:首先 ...

  8. Unity3d 粒子光环制作

    这一次,要参照I Remember网站开始界面的那个光环,用粒子系统做一个类似的光环,当然,我做的没网站上的那么好看,就,增加一点儿自己的东西吧. 首先,来看一下成品图: 图中有两个环,它们转的方向相 ...

  9. Unity3D粒子系统之制作烟雾特效

    Unity3D粒子系统制作烟雾特效 本文将会介绍如何使用Unity内的粒子系统制作烟雾效果. 如果想了解Unity粒子系统中的基础属性,可以看这篇博客:Unity3D 粒子系统之基础属性介绍 先附上预 ...

最新文章

  1. 【rnnoise快速体验】rnnoise从编译到训练
  2. python电脑发音-Python之父发声:我们能为“996”程序员做什么?
  3. 解决opencv错误AttributeError: module ‘cv2.cv2‘ has no attribute ‘xfeatures2d‘
  4. 设计制作简单计算机,自己设计制作CPU与单片机
  5. 因为apple无法检查其是否包含恶意软件_新Linux恶意脚本——清理其他恶意软件后再感染...
  6. java分隔符 字符串_用Java构建带分隔符的字符串的最佳方法是什么?
  7. 安卓线程同步面试_面试BAT大厂,可少不了这些题目!
  8. 系统分区 ,硬盘格式化,
  9. 鸿蒙系统非手机用,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可 !【手机吧】_百度贴吧...
  10. mysql查看和修改密码策略
  11. 给LINUX添加一个开机执行脚本
  12. 慧荣SM2246XT主控的固态硬盘修复开卡不识别怎么短接方法
  13. Unity3D游戏开发从零单排(四) - 制作一个iOS游戏
  14. LATEX 罗马数字的输入
  15. python实现微信自动发拜年信息和回复消息
  16. 亚马逊中关于店铺广告设定的介绍
  17. Python使用随机森林预测泰坦尼克号生存
  18. 机器学习:03 Kaggle比赛 患者是否患糖尿病
  19. Garbage in,garbage out
  20. VS2019+QGIS开发库二次开发环境搭建

热门文章

  1. 开机按F1才能进入(启动)系统的解决方式
  2. 财务管控轻松搞定:适合小企业的财务软件推荐!
  3. 需求:给定两个整数,被除数和除数(都是正数,且不能超过int的范围),将两数相除,要求不使用乘法,除法和 % 运算,得到商和余数
  4. games101——作业8
  5. mysql 复合主键 单独_怎么把复合主键改为单一主键
  6. 520来了想要表白的看这里,教你用python画不同类型的心形图虏获芳心,值得收藏!!
  7. Codeup墓地-2337
  8. 开源(离线)中文语音识别ASR(语音转文本)工具整理
  9. mysql 裸设备_Mysql5.5使用裸设备存储
  10. android进阶之光!一次哔哩哔哩面试经历,灵魂拷问