使用Unity粒子系统放烟花

这篇具有很好参考价值的文章主要介绍了使用Unity粒子系统放烟花。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.前言

本博客是中山大学3D游戏编程与设计大作业

2.作业要求

1.按参考资源要求,制作一个粒子系统

2.使用3.3节介绍,用代码控制使之在不同场景下效果不一样。

3.用到的资源

3.1 基础资源,主要用于烟花弹的外观以及烟花弹爆炸后产生的烟雾。

使用Unity粒子系统放烟花

3.2地图资源,从assets store中下载的免费资源,让最后展示烟花效果更好看。

使用Unity粒子系统放烟花

4.制作过程

4.1 烟花弹的制作

要制作烟花,需要先制作烟花爆炸前的烟花炮弹。

首先在场景中添加一个粒子系统,然后将该粒子系统transform的rotation设置为(-90,0,0),这样粒子系统就会向上发送粒子。

使用Unity粒子系统放烟花

然后设置该粒子系统的基础设置,首先把Start Size和Start Speed等设置为合适的值,而Start Lifetime为粒子的存活时间,这里设置为Random Between Two Constants,规定为2-4之间的随机数,这样烟花就会在发射后不同时间爆炸,同时将Gravity Modifier设置为0.3,这样烟花发射后就有抛物线的弧度。

使用Unity粒子系统放烟花

将粒子系统的粒子发射速率设置为1。

使用Unity粒子系统放烟花

将粒子系统的发射半径设置为0.01,发射角度规定为35°以内,这样看起来就有个漏斗形状,更符合烟花弹发射的效果。

使用Unity粒子系统放烟花

                                           shape设置

使用Unity粒子系统放烟花

                    粒子系统形状效果

勾选Size over Lifetime,设置粒子的大小随时间而改变,这样烟花弹就有一个忽明忽暗的效果,更加逼真,如图所示。

使用Unity粒子系统放烟花

再把基础资源中的火焰材料拖到粒子系统的Renderer中的material中,让烟花弹更加好看。

 使用Unity粒子系统放烟花

烟花弹效果如下,可以看到烟花弹忽大忽小。

使用Unity粒子系统放烟花

4.2烟花弹拖尾制作

为了让烟花弹的效果更加逼真,给烟花弹添加一个拖尾效果。勾选Sub Emitters,并添加一个子发射器命名为tail。

使用Unity粒子系统放烟花

设置tail的基础设置,拖尾粒子的存活时间应该比较短,设置为1-2之间的随机值,大小也比较小,设置为0.5,并且也需要添加重力效果,设置为0.2。

使用Unity粒子系统放烟花

将tail粒子的形状设置为球形,并将半径设置为0.003。

使用Unity粒子系统放烟花

为了使拖尾效果更加炫酷,需要勾选Color over Lifetime,使得粒子颜色随时间的变化而改变。

使用Unity粒子系统放烟花

同时为了拖尾粒子消失不那么突兀,勾选Size over Lifetime,使得粒子大小随着时间推移变小,最终消失。

使用Unity粒子系统放烟花

拉长粒子,设置Speed Scale为0.15,Length Scale为2,这样粒子就会边长,让拖尾效果更加逼真。

使用Unity粒子系统放烟花

为了使拖尾效果更加明显,给tail添加一个子发射器tails'tail,该子发射器设置与tail大同小异,这里不再详细介绍。

使用Unity粒子系统放烟花

 烟花弹拖尾最终效果如下所示

使用Unity粒子系统放烟花

4.3 增加烟雾效果

拖尾效果做完,我们还需要增加烟花爆炸的效果,在这之前我们先添加一个爆炸时产生的烟雾效果。首先我们要在烟花弹的Sub Emitters添加一个子发射器smoke,在death时触发。

使用Unity粒子系统放烟花

然后设置smoke的属性,首先也要设置基本设置,其中值得关注的是Start Size设置为40-70之间的随机值,这是因为烟雾大小不是一定的,而Start Rotation设置为0°-180°之间的随机值,这是为了让烟雾看起来每一次都不一样。

使用Unity粒子系统放烟花

 然后再设置Emission,由于每次爆炸烟雾只要出现一次就行,所以设置为只进行一轮爆炸且爆炸只产生一个粒子。

使用Unity粒子系统放烟花

然后再设置Size over Lifetime,设置烟雾大小随时间变大,这样就有烟雾扩散的效果。

  使用Unity粒子系统放烟花

 最后选择一个烟雾材料并拖动到Renderer的material中,这里用的是3.1中说到的资源中的烟雾(选中的那个烟雾)。

使用Unity粒子系统放烟花

 最终烟雾效果如下所示(为了使效果更加明显这里把背景调回了默认背景)

使用Unity粒子系统放烟花

4.4 增加烟花爆炸的效果

在smoke上增加三个子发射器,在烟雾产生的时候这三个子发射器也同时发射粒子,这三个发射器分别发射红色,蓝色,绿色粒子,这样能让烟花更加好看。

这里只详细介绍红色的子发射器,其他颜色的发射器只是颜色不同,其他都一样。

首先设置基本设置,每个烟花粒子的存活时间,初始速度,大小都不同,所以都设置为两个常数之间的随机值。颜色设置为红色,重力设置为0.2。

 使用Unity粒子系统放烟花

 设置Emission,由于烟花每次爆炸都会产生大量粒子,且粒子的数量不定,所以就将粒子数量设置在700-900之间。

使用Unity粒子系统放烟花

 设置Size over Lifetime ,让粒子大小随时间变小,营造烟花逐渐熄灭的效果。

使用Unity粒子系统放烟花

 最后跟拖尾效果一样,为了让爆炸更加炫酷,再添加一个子发射器redflame,设置与父发射器相似,只是把粒子大小调小了一些。

使用Unity粒子系统放烟花

 添加了三个不同颜色的子发射器后效果如下(这里为了使效果更明显,将烟花弹发射速率调为原来的3倍)

使用Unity粒子系统放烟花

 4.5 控制脚本

编写一个含两个按钮的脚本,两个按钮分别使烟花发射开始和暂停。编写完将脚本挂载在空物体上,然后将粒子系统拖到该脚本上即可控制粒子系统。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class mono1 : MonoBehaviour
{
    public ParticleSystem particleObject1; 
    public GUIStyle buttonstyle;
    string str="";
    void OnGUI(){
        if (GUI.Button (new Rect (0,Screen.height-55,55,55), "放烟火")) {
            particleObject1.Play();   
        }
        if (GUI.Button (new Rect (55,Screen.height-55,80,55), "停止烟火")) {
            particleObject1.Stop();
        }
    }

    // Start is called before the first frame update
    void Start()
    {
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

添加后效果如下(记得把粒子系统的play on awake取消勾选,这样烟花就会等按下按钮之后才开始放)

使用Unity粒子系统放烟花

5. 应用到场景

将制作完的烟花应用到3.2中下载的资源场景中。

因为这里有六个粒子系统,需要稍微修改下脚本代码,如下。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class mono2 : MonoBehaviour
{
    public ParticleSystem particleObject1; 
    public ParticleSystem particleObject2;
    public ParticleSystem particleObject3;  
    public ParticleSystem particleObject4;  
    public ParticleSystem particleObject5;  
    public ParticleSystem particleObject6;  
    public GUIStyle buttonstyle;
    void OnGUI(){
        if (GUI.Button (new Rect (0,Screen.height-55,55,55), "放烟火")) {
            particleObject1.Play();
            particleObject2.Play();
            particleObject3.Play();
            particleObject4.Play();
            particleObject5.Play();
            particleObject6.Play();
        }
        if (GUI.Button (new Rect (55,Screen.height-55,80,55), "停止烟火")) {
            particleObject1.Stop();
            particleObject2.Stop();
            particleObject3.Stop();
            particleObject4.Stop();
            particleObject5.Stop();
            particleObject6.Stop();
        }
    }

    // Start is called before the first frame update
    void Start()
    {
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

最终结果如下。

使用Unity粒子系统放烟花

6.代码下载 

代码仓库 将代码下载后替代掉原来的assets文件夹,然后打开myscene->Scene->flamescene,运行即可。

7.演示视频

演示视频文章来源地址https://www.toymoban.com/news/detail-481370.html

到了这里,关于使用Unity粒子系统放烟花的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VMware安装Win11+WSA子系统和使用教程

    VMware安装Win11+WSA子系统和使用教程 作者:Sna1lGo 时间:2022/9/29 Win11镜像:Download Windows 11 (microsoft.com) VMware:下载 VMware Workstation Pro - VMware Customer Connect VMware激活码在网上随便搜一个。 win11激活码不需要。 采用正常流程搭建虚拟机。(省略) 修改虚拟机配置: 修改内存为4GB,

    2024年02月02日
    浏览(51)
  • Windows 下使用 WSL 安装 Kali Linux 子系统

    使用 WSL 安装 Kali,方便快捷使用。 类似于 Cygwin 不过听说通过 WSL 安装的做了隔离,不能够访问硬件,也就无法进行硬件相关的渗透,具体有待核实。 环境:Windows 10 21H2 教育版 参考:

    2024年02月04日
    浏览(40)
  • Windows 自带的 Linux 子系统(WSL)安装与使用

    WSL官网安装教程: https://learn.microsoft.com/zh-cn/windows/wsl/install Windows 自带的Linux子系统,比用VM什么的香太多了。可以自己看官方教程,也可以以下步骤完成。 如果中间遇到我没遇到的问题百度,可以在评论区评论,或者自己百度其他教程解决。 搜索powerShell, 然后右键以管理

    2024年02月21日
    浏览(39)
  • Windows 使用 Linux 子系统,轻轻松松安装多个linux

    简称WSL,是一个在Windows 1011上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。如果使用Windows10 2004以

    2024年02月14日
    浏览(34)
  • 开始在适用于 Linux 的 Windows 子系统上使用 Git

    Git 是最常用的版本控制系统。 使用 Git,可以跟踪对文件所做的更改,以便记录已完成的操作,并能够在需要时还原到文件的早期版本。 Git 还可以简化协作,使多个人员所做的更改全部合并到一个源中。 一个重要的注意事项:启用 WSL 并安装 Linux 发行版时,将安装与计算机

    2024年02月11日
    浏览(37)
  • 手把手教学基于Windows11的wsl2使用ubuntu子系统

    打开“控制面板“-“程序“-“程序和功能“-“启用或关闭windows功能“(侧边栏)-勾选“hyper-v“、“适用于Linux的Windows子系统“、“虚拟机平台“ 控制面板:开始菜单中搜索打开即可 选择“程序”,进入后选择“程序和功能” 选择“启用或关闭windows功能” 勾选“Hyper-V“

    2024年01月20日
    浏览(39)
  • 【开发工具】适用于Windows的Linux子系统一一WSL安装使用教程

    一、简介 Windows Subsystem for Linux(简称WSL)是一个在Windows 1011上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上

    2024年02月05日
    浏览(46)
  • 【2023最新版】Windows11家庭版:安卓子系统(WSA)安装及使用教程【全网最详细】

    目录  一、准备工作 1. 检查虚拟化功能 2. 找到“Wndows功能” 3. 启用Hyper-V和虚拟机平台 4. 家庭版安装Hyper-V(若步骤3找不到Hyper-V) 二、安装安卓子系统 1. 进入开发者选项 2. 下载Windows Subsystem for Android™ with Amazon Appstore 3. 若步骤2无法下载 4. 安装 三、使用adb命令连接安卓子

    2024年02月12日
    浏览(41)
  • Windows 10 安装安卓子系统 WSA(Magisk/KernelSU)使用 WSA 工具箱安装 APK

    from https://blog.zhjh.top/archives/XokySA7Rc1pkVvnxAEP5E 前提是系统为 Windows 10 22H2 10.0.19045.2311 或更高版本,尽量新。 在 Microsoft Store 中安装 Ubuntu LTS(或你喜欢的发行版),此处为 Ubuntu 20.04.5 LTS。 开始菜单找到并打开安装的 Ubuntu,执行以下命令。Linux 子系统的 /mnt 目录,可以访问到

    2024年02月06日
    浏览(101)
  • 【智能家居项目】裸机版本——字体子系统 | 显示子系统

    🐱作者:一只大喵咪1201 🐱专栏:《智能家居项目》 🔥格言: 你只管努力,剩下的交给时间! 今天实现上图整个项目系统中的字体子系统和显示子系统。 在显示设备上显示字体其实也是比较复杂的,显示的字体有点阵字体,矢量字体等方式。 使用点阵绘制文字时:每个文

    2024年02月08日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包