unity粒子系统

2023-11-17

添加粒子系统

按照GameObject -> Effect -> Particle System顺序,添加粒子系统,效果如下:
begin
粒子系统有其独特的组件:Particle SystemParticle_System
展开上面的一系列属性中的Particle System,调整duration子属性,见下图。
Particle_System_property.png

  • 这个是表示生成粒子的持续时间,注意需要把下面的子属性looping关掉,这个属性表示在执行完一个duration之后是否继续执行下一个duration。
    将duration设置为1和5的效果区别如下:

duration1.gif
duration=1
duration5.gif
duration=5

  • 调整prewarm子属性,这个是预热的意思,只能在勾选looping属性后勾选。勾选之前粒子是产生就发射了,会看到粒子从产生到扩散的全过程;而勾选该属性之后感觉看到的就是粒子已经产生并且扩散了一段时间的结果。

  • start delay是设置粒子最开始经过多久才开始生成,这个属性需要在没有勾选prewarm的情况下才能够勾选。

  • start lifetime是粒子产生之后存在的时间。
    现在将粒子设置为start delay=1,start lifetime=1效果如下
    start delay
    和最开始的初始没有勾选start delay,并且start lifetime=5形成鲜明对比。

  • Start Speed指粒子的开始速度

  • Start Size指粒子开始的大小

  • Start Rotation指粒子开始的旋转方向

  • Start Color指粒子开始的颜色值
    将颜色改为绿色,效果如下
    start color
    还可以选择随着时间动态变化,选择gradient,然后进入调色
    效果如下,可以看到,在一个周期内,最开始的粒子颜色是黑色,后来变成黄色了,下一个周期又从黑色到黄色动态变化
    start color2

  • 3D Start Size 字面意思就是3维的Start Size,3D Start Rotation是3维的Start Rotation(原来是2维的)
    下面将粒子x方向的大小设置为0.5,y方向角度设为45度,效果如下:
    3dsize

  • Max Particles是指粒子系统一个周期内能产生的所有粒子总数,如果一个周期已经产生的粒子达到这个数目,将不会再有粒子产生,例如将这个值设为5,效果如下
    max particle

  • gravity modifier用来调整粒子系统的重力效果
    将该属性设置为10,之后的效果为
    gravity modifier

  • color over time ,指的是粒子颜色随时间的变化,与刚才start color的梯度设置不同的是,这个是同一个粒子随着时间会发生改变,而刚才的是随着时间变化不同粒子的初始颜色不同。效果如下,可以发现粒子一开始是蓝色,逐渐边黄,再变红,再变白,与刚才设置的start color的梯度变换还是十分不同的

color over time

  • Simulation Space是粒子的参考系,如果选择local,则移动整个粒子系统坐标时,所有的粒子也会跟着移动,如果选择的是world,则粒子不会随粒子系统移动。
  • Rate是指发射粒子的速率
  • Bursts是指来在某时刻集中发射一定数量的粒子。
  • shape是指粒子发射的整体形状,比如默认选择的cone,就是沿着圆锥散开的,如果选择sphere,粒子就会沿着四面八方散开(因为是球形扩散面),选择semi-sphere就会沿着半圆散开。
  • Texture Sheet Animation和下方的Renderer一起使用可以改变粒子的形状。
    首先Renderer中换材质球为自己下载的材质球:render
    然后再将Texture Sheet Animation中的Tiles中的X和Y都设为2,这一步是用作贴图的切分,X代表图像在横向上被切分的块数,Y代表在纵向上被切分的块数。

接着看Animation,选择Whole Sheet。这里whole sheet表示使用贴图的各部分帧动画播放,Single Row则表示选取其中一行。

最后再将Frame over Time表示动画的帧随着时间的变化,这里我们选择Curve并将其设置为线性就可以利用刚才切分的贴图的四部分进行循环播放了。
效果如下,粒子的光晕从小到大,然而这是实际是由贴图决定的texture

再对其按照自己喜好设置一些属性,附加上下面这段控制粒子系统坐标系的代码,一个粒子系统就做好了

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class tes : MonoBehaviour
{
    ParticleSystem ps;
    int direction;
    void Start()
    {
        ps = GetComponent<ParticleSystem>();
        direction = 0;
    }

    void Update()
    {
        int minX = -10, maxX = 10;
        if (direction == 0 && ps.transform.position.x > minX)
        {
            ps.transform.position += Vector3.left * Time.deltaTime * 30;
            ps.transform.position += Vector3.up * Time.deltaTime * 15;

        }
            
        else if (direction == 1 && ps.transform.position.x < maxX)
        {
            ps.transform.position += Vector3.right * Time.deltaTime * 30;
            ps.transform.position += Vector3.down * Time.deltaTime * 15;
        }  
        else direction = 1 - direction;
    }
}

最终效果如下:
final

资源

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

unity粒子系统 的相关文章

随机推荐

  • 求救,在频域分析语音信号谐波成分的方法有哪些

    求救 在频域分析语音信号谐波成分的方法有哪些 有一段语音信号 经过FFT之后变换到频域 目前想在频域分析其谐波成分 并找到谐波能量最大的K次谐波 matlab里可以用仿真powergui生成仿真的信号 然后FFT分析得到各谐波成分及能量 但
  • vi命令修改文件及保存的使用方法

    简单点 vi文件名 按 I 进入insert模式 可以正常文本编辑 编辑好之后按 esc 退出到 命令模式 再按 shift 进入 底行模式 按 wq 保存退出 还一种 把文件复制到本地修改好上传上去 vi编辑器是所有Unix及Linux系
  • 每日一练:用java打印水仙花数

    需求 在控制台输出所有的 水仙花数 解释 什么是水仙花数 水仙花数 指的是一个三位数 个位 十位 百位的数字立方和等于原数 例如153 3 3 3 5 5 5 1 1 1 153 思路 获取所有的三位数 准备进行筛选 最小的三位数为100
  • cp1.php969.net,eDrawings

    OzsgSFNGIFYxMy4wNSAKSQAAAABCAGDlUL0Spb29AAAAAGXlUD13vp89x0rNPVp42uy9B0AUSdMw3LMzsxHYJeec8 6SdoGVJagoiAFBMAOimNDDhBHMeqen
  • 怎么批量安装服务器的操作系统,批量安装服务器操作系统

    弹性云服务器 ECS 弹性云服务器 Elastic Cloud Server 是一种可随时自助获取 可弹性伸缩的云服务器 帮助用户打造可靠 安全 灵活 高效的应用环境 确保服务持久稳定运行 提升运维效率 三年低至5折 多种配置可选了解详情
  • 数组(持续更新后续)

    目录 数组定义 数组的组成部门 案例一 案例二 案例三 增强for循环 语法结构 执行规律 注意 案例 案例 案例 数组定义 变量 存储数据的空间 装数据的容器 变量中只能存储一个数据 数组 存储数据的空间 装数据的容器 数组中可以存储多个
  • sojson JS 逆向一 (简单版)

    背景 现在市面上很多web网页都是使用sojson加密的 所以 爬虫小伙伴对sojson的学习迫在眉睫 js 加密源码 var a b function w d w info 这是一个一系列js操作 d warning 如果您的JS里嵌套了
  • 202206-3 角色授权

    第三题 题干 角色授权 include
  • svn更新有问题svn: The working copy at' ' is too old

    SVN the working copy needs to be upgraded svn 低版本SVN检出代码 高版本SVN提交不了解决方法如下 项目右键 team Upgrade 即可 如下图 参考URL https blog csdn
  • Python:流动爱心图案

    from turtle import 导入了Python标准库中的turtle模块 并使用通配符 导入了该模块中的所有函数和变量 turtle模块提供了一个绘图窗口和一些绘图函数 可以用来绘制简单的图形 from math import s
  • python-爬虫初识-采集汽车资讯信息案例(一)

    目录 一 什么是爬虫 二 初识爬虫 采集汽车资讯信息 三 requests和BeautifulSoup模块基本使用 requests import requests BeautifulSoup from bs4 import Beautif
  • 数学模型——数学与人类文明的桥梁

    序言 数统治着宇宙 Pythagoras 数学一词在西方源于古希腊语 意思是通过学习获得知识 显然 早期数学涵盖的范围比我们今天要广得多 人类科学发展至今 衍生出生物科学 信息科学 金融学 计算机科学等不胜枚举的领域与分支 而数学模型正是数
  • Word打印或打印预览或另存为PDF时出现“错误!未定义书签!”的解决办法

    出处 http blog sina com cn s blog 5ee0924f0101a05l html 今天在单独打印一份三页的目录Word文档时 所有目录的页码全部变为 错误 未定义书签 很是奇妙 一开始还以为是打印问题 又重新打印了
  • 如何使用Google Compute Engine入门指南快速创建和配置您的云虚拟机实例

    文章目录 步骤1 创建 Google Cloud Platform GCP 账户 步骤2 设置 GCP 项目 步骤3 启用 Google Compute Engine API 步骤4 安装 Google Cloud SDK 步骤5 创建虚拟
  • sql中使用union 或者union all语句时,两边的列的顺序必须保持一致

    sql中使用union 或者union all语句时 两边的列的顺序必须保持一致
  • [HashMap源码学习之路]---hashcode的作用及数组长度为什么是2的n次幂

    HashMap中的hashcode作用 HashMap是Java 中很重要的一个概念 工作中使用的频率也非常广泛 需要对其进行了解 看源码是很枯燥的 但是看懂了 却有种豁然开朗的感觉 觉得特别棒 本篇只说hashcode的作用及数组长度为什
  • Java Thread synchronized同步锁简介说明

    转自 Java Thread synchronized同步锁简介说明 下文笔者讲述Thread synchronized同步锁的简介说明 如下所示 java中 每一个对象只有一个同步锁 同步锁放置在对象头上 当我们调用一个对象的synchr
  • VS2019中搭建QT 5.15.2开发环境

    接触QT VS一年多 对于环境搭建的一些细节已有些遗忘 最近又要重新搭建环境 就以此文章来记录一下搭建的细节 方便日后查询 1 VS2019与QT5 14 2的安装 VS2019的安装链接下载 Visual Studio Tools 免费安
  • 在keil工程中删除编译文件的方法

    在实际工作中coding的工作是一方面 但是作为最终的输出是要提交源码作为成果来管理和上传的 不管是Git也好SVN也好 一般都要求只保存源码和工程文件 针对单片机MCU类的项目 对于Linux下的项目没有工程文件一说 只有配置信息和整个工
  • unity粒子系统

    添加粒子系统 按照GameObject gt Effect gt Particle System顺序 添加粒子系统 效果如下 粒子系统有其独特的组件 Particle System 展开上面的一系列属性中的Particle System 调