Unity-Particle System属性介绍(一)基本属性

news2024/12/23 17:50:43

什么是ParticleSystem

粒子系统是Unity中用于模拟大量粒子的行为的组件。每个粒子都有一个生命周期,包括出生、运动、颜色变化、大小变化和死亡等。粒子系统可以用来创建烟雾、火焰、水、雨、雪、尘埃、闪电和其他各种视觉效果。

开始

在项目文件下创建一个Vfx文件夹用于存放我们的Prefab资源。进入Vfx文件夹之后,右键选择Prefab,命名为testVfx后双击在Scenes界面出现一个空白对象。

Add Component中输入Particle System(之后简称PS)便可以自动添加一个带有示例的Particle System组件。

点击播放,可以见到下图效果:

基本属性

由于Particle System中属性内容复杂,将会分模块讲述。我们姑且将testVfx中的部分称之为基本属性,内容如下,可以对照目录直接跳转对应部分查看。

Duration-发射粒子的时间长度

PS发射粒子的时间长度(以秒为单位),如果勾选了下方的looping则默认设置为1。

将其设置为3并将原本的looping取消勾选,便可以发现粒子发射大约3s后停止发射。

Prewarm-预热选项

预热选项(常用于大量粒子会被发射,需要提前进行模拟的情景),仅有当looping勾选时方可进行勾选。

The Particle System looks like it has already simulated for one loop when first becoming visible.

Start Delay-开始发射的延迟时间(秒)

开始发射的延迟时间(秒),但是Duration中设计的秒数会往后顺延——原本3s结束发射,拖延到了4s结束。

Start Lifetime-粒子的生命周期

粒子的生命周期。将其设置为2之后再次点击播放,可以明显见到存在的粒子数目明显减少,消散速度变快。

StartSpeed-开始时的出发速度

开始时的出发速度,我们将其设置为20。可以见到锥形显示区域明显变大,播放后粒子移动速度加快。

3D Start Size-3D 方向伸长大小调节

如果勾选,便可以调节粒子在x,y,z轴上各自的长度。留意此处坐标轴并非是和世界坐标轴相一致,而是相对于相机的坐标轴。

我们将z设置为10,点击播放。可以发现并没有发生变化。因为z轴是垂直我们观察角度的轴,其长短变化不可视。使用右键移动视角之后发现亦是如此。

将z设置回1,将x设置为7。点击播放。

3D Start Rotation-旋转角度

如果勾选,便可以调节粒子在x,y,z轴上各自的逆时针翻转角度(度)。我们将z设置为90。

可以见到原本横条全部变为了竖条(薯条🍟)。

Flip Rotation-反翻转

设置多少比例的粒子,反着设置的3D Start Rotation进行发射。(取值范围0~1)

我们将3D Start Rotation中的z设置为45,Flip Rotation设置为0.3。

可以见到少数粒子变为顺时针翻转45°。

Start Color-开始粒子颜色

设置一开始的粒子颜色,但是非常短暂几乎不可见。

Gravity Source-重力来源

拥有 3D Physics 和 2D Physics 两个选项。根据实际项目情况进行选择即可。

Gravity Modifier-重力调节器

重力的调节器,设置为0为无重力状态,之后 True Gravity = Modifier * Gravity。

此处我们设置为1,可以看到粒子呈现往下掉的视觉效果。

Simulation Space-粒子模拟相对空间

粒子模拟空间

  • Local:粒子系统将在其父对象(一般为Particle System所属对象)的局部空间内进行模拟。这意味着粒子的位置是基于父对象的位置和旋转计算的。这对于当你想要粒子系统跟随父对象移动或旋转时非常有用。

  • World:粒子系统将在世界空间中进行模拟。这意味着粒子的位置是基于整个场景的世界坐标计算的。这对于当你想要粒子系统独立于父对象移动或旋转时非常有用。

  • Custom:粒子系统将在自定义空间中进行模拟。这是一个更高级的选项,允许你定义自己的空间变换矩阵,从而实现更复杂的粒子系统行为。

Simulation Speed-粒子模拟速度

模拟速度。我们将其设置为秒,可以见到原本结束发射时间为4秒,现在被快进2倍到2秒。


Delta Time-更新时间模式

在粒子系统中,Delta Time(ΔT)是每一帧中时间的增量,用来驱动粒子系统的更新。Delta Time 可以有两种模式:ScaledUnscaled,它们的区别主要体现在时间的计算方式上。

1. Scaled Delta Time

Scaled Delta Time 是根据游戏的帧率和时间缩放(Time Scale)来计算的。也就是说,它会受到游戏时间缩放的影响。当游戏处于暂停状态(即 Time.timeScale为 0)时, Delta Time 会变为 0,这会导致粒子系统的更新暂停。此选项通常用于基于实际游戏进度更新粒子的行为。

  • 适用场景:当你希望粒子系统的行为与游戏的时间流逝同步(如普通的物理模拟)时使用 Scaled Delta Time。
  • 影响因素
    • 游戏暂停时,Delta Time 为 0。
    • 如果游戏速度变慢,粒子系统的更新也会变慢。

2. Unscaled Delta Time

Unscaled Delta Time 是不受游戏时间缩放影响的时间增量。即使游戏暂停或时间缩放发生变化,Unscaled Delta Time 仍然会按照真实的时间流逝进行计算。通常用于需要不受时间缩放影响的粒子行为,比如基于真实世界时间的粒子更新,或者希望粒子系统独立于游戏的时间控制之外。

  • 适用场景:当你希望粒子系统的行为独立于游戏时间流逝时(比如在暂停或时间慢速时依然希望粒子继续播放)使用 Unscaled Delta Time
  • 影响因素
    • 游戏暂停时,Unscaled Delta Time 仍然会继续计算,保持粒子的更新。
    • 游戏时间缩放对粒子系统没有影响。

Scaling Mode-缩放方式

  • Hierarchy:粒子系统缩放依赖于父物体的缩放,适用于需要粒子与父物体一起缩放的场景。
  • Local:粒子系统的缩放独立于父物体,适用于不希望粒子系统受到父物体缩放影响的情况。
  • Shape:只将缩放应用于形状模块。这种方式下,只有粒子发射器的形状和大小会被缩放所影响,而不改变生成的粒子的大小。

Play On Awake-唤醒播放

是否在被enable时就开始播放,并且此选项会作用于所有Particle System下的这个Particle Effect。

Emitter Velocity Mode-发射速度模式

发射速度模式设置

  • Transform: 根据系统的变换为粒子增加速度。这意味着如果粒子系统本身在运动或旋转,这种运动将传递给发射的粒子。
  • Rigidbody: 使用与粒子系统连接在同一个游戏对象上的刚体组件。如果物体有一个刚体并且它在运动,粒子就会继承这个运动。
  • Custom: 允许使用 Custom Velocity 属性指定粒子的自定义速度。

Max Particles-最大粒子数

最大粒子数,可以有效防止策划同学填了一个毁灭世界的值。: )

Auto Random Seed-行为随机化

勾选后,每次发射的行为都将不同(引入随机变量,有点像C语言里面的srand)

Stop Action-完结动作

当所有粒子发射之后,GameObject所应该执行动作。

  • None:不采取任何行动。粒子系统停止后,游戏对象保持启用状态。
  • Disable:禁用游戏对象。当粒子系统停止且所有粒子都消失时,游戏对象将被禁用。这可以防止游戏对象接收更新调用,从而节省CPU资源。
  • Destroy:销毁游戏对象。当粒子系统停止且所有粒子都消失时,游戏对象将被销毁。这将完全移除游戏对象及其组件,释放所有相关资源。
  • CallBack: 未知,占空

Culling Mode-未显示时行为模式

粒子系统未在屏幕显示上的行为模式。

  • Automatic:此选项表示当粒子系统不在屏幕上时,Unity会自动决定是否继续模拟粒子系统。具体来说,对于循环系统,它会暂停离屏模拟;而对于非循环系统,则始终模拟。

  • Pause and Catch-up:选择此选项时,当粒子系统不在屏幕上时,Unity会暂停其模拟。但是,一旦粒子系统重新进入屏幕,Unity会执行一个大型的仿真步骤来追赶时间,使得粒子看起来就像它们从未被暂停一样。

  • Pause:选择此选项时,当粒子系统不在屏幕上时,Unity会暂停其模拟。这意味着粒子系统会在粒子系统再次出现在屏幕上之前停止生成新的粒子,直到它重新出现为止。

  • Always Simulate:选择此选项时,无论粒子系统是否在屏幕上,Unity都会持续地模拟粒子系统。这意味着即使在粒子系统不在屏幕上时,也会继续生成新的粒子。

Ring Buffer Mode-粒子结束行为

  • Disabled:这是默认设置。在这种模式下,粒子在其生命周期结束后就会死亡,然后新粒子会取代旧粒子。

  • Pause Until Replaced:当粒子的生命周期结束时,它们不会立即死亡,而是会暂停,直到有新的粒子替换它们。

  • Loop Until Replaced:当粒子的生命周期结束时,它们会重置为初始状态并开始一个新的生命周期。粒子会不断循环,直到有新的粒子替换它们。对象池模式。

结语

用好Particle System是创造出优秀游戏动态美术效果的第一步。

一起加油,无限进步!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2252455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机的错误计算(一百七十二)

摘要 探讨 MATLAB 对于算式 的计算误差。 例1. 在 MATLAB 中计算 的值。 直接贴图吧: 这样,MATLAB 的输出中只有3位正确数字,有效数字的错误率为 (16-3)/16 81.25% . 因为16位的正确输出为 0.2971242332737277e-18(ISReals…

Flink四大基石之CheckPoint(检查点) 的使用详解

目录 一、Checkpoint 剖析 State 与 Checkpoint 概念区分 设置 Checkpoint 实战 执行代码所需的服务与遇到的问题 二、重启策略解读 重启策略意义 代码示例与效果展示 三、SavePoint 与 Checkpoint 异同 操作步骤详解 四、总结 在大数据流式处理领域,Ap…

S4 UPA of AA :新资产会计概览

通用并行会计(Universal Parallel Accounting)可以支持每个独立的分类账与其他模块集成,UPA主要是为了支持平行评估、多货币类型、财务合并、多准则财务报告的复杂业务需求 在ML层面UPA允许根据不同的分类账规则对物料进行评估,并…

Vue3学习宝典

1.ref函数调用的方式生成响应式数据&#xff0c;可以传复杂和简单数据类型 <script setup> // reactive接收一个对象类型的数据 import { reactive } from vue;// ref用函数调用的方式生成响应式数据&#xff0c;可以传复杂和简单数据类型 import { ref } from vue // 简…

Linux——基础命令(2) 文件内容操作

目录 ​编辑 文件内容操作 1.Vim &#xff08;1&#xff09;移动光标 &#xff08;2&#xff09;复制 &#xff08;3&#xff09;剪切 &#xff08;4&#xff09;删除 &#xff08;5&#xff09;粘贴 &#xff08;6&#xff09;替换,撤销,查找 &#xff08;7&#xff…

openwrt利用nftables在校园网环境下开启nat6 (ipv6 nat)

年初写过一篇openwrt在校园网环境下开启ipv6 nat的文章&#xff0c;利用ip6tables控制ipv6的流量。然而从OpenWrt22版本开始&#xff0c;系统内置的防火墙变为nftables&#xff0c;因此配置方法有所改变。本文主要参考了OpenWRT使用nftables实现IPv6 NAT 这篇文章。 友情提示 …

go语言的成神之路-筑基篇-gin框架渲染模板

第一节-gin框架渲染模板 因为电脑打不开了&#xff0c;所以用朋友的电脑来写的&#xff0c;也是体验了一次从零开始用vscode配置环境&#xff0c;忙活了一上午才配置好环境。太难配置了。好了废话不多说开始今天的进修之旅。 今天开始gin框架的正式学习希望大家认真观看并检查…

【软考网工笔记】网络基础理论——网络层

文章目录 中断处理过程数据包组装RIPRSVPipv4RIPv1 & RIPv2HFC 混合光纤同轴电缆&#xff08;Hybrid Fiber Coax&#xff0c;简称HFC&#xff09;BGP (边界网关协议)BGP-4 协议的四种报文ICMP 协议数字语音电子邮件协议MPLS 多协议标记交换ipv6DHCPDNS名称解析过程查询顺序…

linux网络抓包工具

linux网络抓包工具 一、tcpdump1.1 基本用法1.2 龙芯平台实例操作 二、wireshark2.1 主要功能2.2 龙芯平台实例操作 一、tcpdump tcpdump 指令可列出经过指定网络界面的数据包文件头&#xff0c;可以将网络中传送的数据包的 “头” 完全截获下来提供分析。它支持针对网络层、协…

NaviveUI框架的使用 ——安装与引入(图标安装与引入)

文章目录 概述安装直接引入引入图标样式库 概述 &#x1f349;Naive UI 是一个轻量、现代化且易于使用的 Vue 3 UI 组件库&#xff0c;它提供了一组简洁、易用且功能强大的组件&#xff0c;旨在为开发者提供更高效的开发体验&#xff0c;特别是对于构建现代化的 web 应用程序。…

WPF DataGrid 列隐藏

Window节点加上下面的 <Window.Resources><FrameworkElement x:Key"ProxyElement" DataContext"{Binding}" /></Window.Resources>然后随便加一个隐藏控件 <ContentControl Content"{StaticResource ProxyElement}" Visi…

【Gitlab】CICD使用minio作为分布式缓存

1、安装minio 下载适合自己系统版本的安装文件https://dl.min.io/server/minio/release/windows-amd64/ yum install xxx.rpm 2、配置/etc/profile export MINIO_ACCESS_KEYroot [ui登录账号] export MINIO_SECRET_KEYminioDev001 [ui登录密码] export MINIO_OPTS"…

用到动态库的程序运行过程

当我们写好了一段代码然后编译运行后会生成可执行文件&#xff0c;该文件会存在磁盘的当前目录下&#xff0c;而当我们开始运行这段程序时&#xff0c;操作系统&#xff08;加载器&#xff09;需要将其从磁盘加载进内存然后执行相关操作&#xff0c;而对于用到动态库的程序&…

ansible自动化运维(一)配置主机清单

目录 一、介绍 1.1了解自动化运维 1.2 ansible简介 1.3 ansible自动化运维的优势 1.4 ansible架构图 二、部署ansible 2.1 基本参数 2.2 Ansible帮助命令 2.3 配置主机清单 2.3.1 查看ansible的所有配置文件 2.3.2 /etc/ansible/ansible.cfg常用配置选项 2.3.3 ssh密…

高效集成:将聚水潭数据导入MySQL的实战案例

聚水潭数据集成到MySQL&#xff1a;店铺信息查询案例分享 在数据驱动的业务环境中&#xff0c;如何高效、准确地实现跨平台的数据集成是每个企业面临的重要挑战。本文将聚焦于一个具体的系统对接集成案例——将聚水潭的店铺信息查询结果集成到MySQL数据库中&#xff0c;以供BI…

Spark基本命令详解

文章目录 Spark基本命令详解一、引言二、Spark Core 基本命令1、Transformations&#xff08;转换操作&#xff09;1.1、groupBy(func)1.2、filter(func) 2、Actions&#xff08;动作操作&#xff09;2.1、distinct([numTasks])2.2、sortBy(func, [ascending], [numTasks]) 三、…

[在线实验]-ActiveMQ Docker镜像的下载与部署

镜像下载 下载ActiveMQ的Docker镜像文件。通常&#xff0c;这些文件会以.tar格式提供&#xff0c;例如activemq.tar。 docker的activemq镜像资源-CSDN文库 加载镜像 下载完成后&#xff0c;您可以使用以下命令将镜像文件加载到Docker中&#xff1a; docker load --input a…

CQ 社区版 2024.11 | 新增“审批人组”概念、可通过SQL模式自定义审计图表……

CloudQuery 社区 11 月新版本来啦&#xff01;本月版本依旧是 CUG&#xff08;CloudQuery 用户组&#xff09;尝鲜版的更新。 针对审计模块增加了 SQL 模式自定义审计图表&#xff1b;在流程模块引入了“审批人组”概念。此外&#xff0c;在 SQL 编辑器、连接管理等模块都涉及…

mac终端自定义命令打开vscode

1.打开终端配置文件 open -e ~/.bash_profile终端安装了zsh&#xff0c;那么配置文件是.zshrc&#xff08;打开zsh配置&#xff0c;这里举&#x1f330;使用zsh&#xff09; sudo open -e ~/.zshrc 2.在zshrc配置文件中添加新的脚本&#xff08;这里的code就是快捷命令可以进…

关于单片机的原理与应用!

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///计算机爱好者&#x1f60a;///目前正在学习C&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于单片…