草庐IT

详解Unity中的粒子系统Particle System (一)

梦小天幼 2023-05-03 原文

前言

游戏中很多炫酷效果的背后都离不开粒子系统,比如击中、爆炸、火焰、崩塌、喷射、烟雾等等。Unity也我们提供了强大的粒子系统,模块化的设计,上百个参数供我们调节使用,足以创造出非常震撼的效果了,本篇我们就来讲讲Unit的粒子系统Particle System。本篇为第一篇,主要讲解Unity的粒子系统方案选择、粒子系统的结构、概述、模块介绍等内容。

目录

本系列提要

Unity粒子系统专题博客共分成十二篇来讲解: 【本篇为第一篇】

前排提醒:本文仅代表个人观点,以供交流学习,若有不同意见请评论留言,笔者一定好好学习,天天向上。

Unity版本[2019.4.10f1] 梦小天幼 & 禁止转载

视频讲解:
【详解Unity】粒子系统(一) | Particle System | 概述篇 | 哔哩哔哩


一、两种粒子系统方案选择

Unity在创作粒子系统时提供了两种解决方案,一种是内置粒子系统(Particle System),一般粒子系统就是指内置粒子系统,还有一种是Visual Effect Graph粒子系统,你可以将其理解为更加高级的粒子系统,可创作出更加绚丽的视觉特效。下图中简述了两种粒子系统优劣之处。

本系列博客我们主要学习内置的粒子系统,有关VFX的内容后续有时间也会写的,本篇以后说到粒子系统就是特指内置粒子系统。

对于小型效果诸如击中特效,火焰特效等使用内置粒子系统即可,对于更加绚丽,需要粒子数量更多的,诸如雨雪天气,大爆炸之类的可酌情使用VFX,一句话,根据需求来决定。


二、粒子系统结构概述

粒子系统是作为组件存在的,如果我们想要创建一个粒子特效,请按照以下步骤:

1.创建一个空物体
2.在空物体的Inspector窗口点击Add Component
3.搜索Particle System并添加

粒子系统组件拥有非常多的属性可供开发者调节,为了方便起见,Unity将它们分类,一类即代表一个模块,我们可以对每个模块单独的禁用或启用。

Unity默认启用了Emission、Shape、Renderer模块,因为这些模块是发射粒子的基础模块,就像每个物体对象必须拥有一个Transform组件一样,不勾选这些模块粒子系统就无法发射了。

图中标注的主模块是粒子系统中最基础的属性。

如果要展开或者折叠模块,请单击模块名称,若要启用/禁用某个模块,请勾选/取消勾选某个模块前的复选框。

每个模块的属性的讲解是我们本系列的重点,本篇为先导篇,并不涉及模块的讲解。


三、粒子系统模块概述


四、Scene视图中的Particle Effect面板

当你成功创建一个粒子时,你会发现你的Scene视图变成了这样的。

左侧是我们刚刚创建的粒子,右侧是预览粒子的一些控制项(修改这些数值只会影响Scene窗口下的粒子显示效果,并不会影响实际粒子运行效果

Particle Effect参数

Pause 暂停播放 | Restart 重新播放 | Stop 停止播放

Playback Speed 播放速度

Playback Time 粒子开始播放的累计时间,Restart重新播放可重置该值

Particles 当前存在的粒子数量

Speed Range 暂无解释
/
Simulate Layers 一般情况下,Scene场景中只会播放你选中的粒子特效,如果你想要让场景中所有的粒子特效或者个别粒子特效播放,就需要选择相应的层级,或者是Everything(全都播放)
/
Resimulate 若启用,粒子系统会立即将属性更改立刻应用于已生成的粒子;若禁用,仅将属性更改应用于新生成的粒子。(仅在Scene窗口预览模式下生效)
/
Show Bounds 显示包围体积
/
Show Only Selected 隐藏所有未选中的粒子特效 (该属性实测不生效,不知道为啥)

五、如果粒子是紫色的该怎么调整?| 粒子材质丢失

由于Unity版本问题,有的版本创建粒子时,并不会将默认粒子材质赋予粒子,这就导致粒子看起来是紫色的,解决办法也很简单,控制粒子材质的模块是Renderer,我们会在第四篇讲述,如果材质丢失了这里可以先提前设置一下。



六、总结和参考资料

1.总结

无总结

2.参考资料

[1].Unity官方.官方手册-粒子系统模块-Main module
[2].菜鸟MAY.2018.1粒子系统概述

有关详解Unity中的粒子系统Particle System (一)的更多相关文章

  1. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  2. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  3. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  4. FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D) - 2

    本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01  客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02  数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit

  5. unity---接入Admob - 2

    目录1.AdmobSDK下载地址2.将下载好的unityPackagesdk导入到unity里​编辑 3.解析依赖到项目中

  6. Unity 3D 制作开关门动画,旋转门制作,推拉门制作,门把手动画制作 - 2

    Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u

  7. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  8. ruby - 在没有基准或时间的情况下用 Ruby 测量用户时间或系统时间 - 2

    因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实

  9. ruby - 以毫秒为单位获取当前系统时间 - 2

    在Ruby中,以毫秒为单位获取自纪元(1970)以来的当前系统时间的正确方法是什么?我试过了Time.now.to_i,好像不是我想要的结果。我需要结果显示毫秒并且使用long类型,而不是float或double。 最佳答案 (Time.now.to_f*1000).to_iTime.now.to_f显示包含十进制数字的时间。要获得毫秒数,只需将时间乘以1000。 关于ruby-以毫秒为单位获取当前系统时间,我们在StackOverflow上找到一个类似的问题:

  10. ruby-on-rails - 如何构建复杂的 Rails 系统 - 2

    关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion我们有以下(以及更多)系统,我们将数据从一个应用推送/拉取到另一个:托管CRM(InsideSales.com)Asterisk电话系统(内部)横幅广告系统(openx,我们托管)潜在客户生成系统(自行开发)电子商务商店(spree,我们托管)工作板(本土)一些工作网站抓取+入站工作提要电子邮件传送系统(如Mailchimp,自主开发)事件管理系统(如eventbrite,自主开发)仪表板系统(大量图表和

随机推荐