粒子系统-烟花

前言

这是本学期最后一次作业,本文通过粒子系统实现烟花效果

相机背景

设置相机背景为黑色,方便显示烟花效果
在这里插入图片描述

烟花制作

该粒子系统主要分为两部分,主体部分带动烟花升至空中,另一部分为爆开的烟花,然后两部分都带上环绕的粒子
在这里插入图片描述
Sub为伴随粒子系统,制作一份复制一份到Burst下

Fireworks制作

基础设置

在这里插入图片描述
烟花上升很快,生命周期设置为为1.2,速度设置为55
颜色设置为红黄两种

Emission

在这里插入图片描述
每次发射一枚烟花

Shape

在这里插入图片描述
发射形状为锥形,角度调小点可以射高点

Velocity over Lifetime

在这里插入图片描述
设置粒子速度由1到0模拟烟花速飞升度变慢

Sub Emitters

在这里插入图片描述

Trails

在这里插入图片描述

Renderer

先制作雪花图片,然后用于制作材质,在renderer中添加材质
在这里插入图片描述

伴随粒子系统制作

基础设置

在这里插入图片描述

Emission&Shape

在这里插入图片描述

Size over Lifetime

在这里插入图片描述

Rotation over Lifetime&Renderer

在这里插入图片描述

Burst制作

基础设置

在这里插入图片描述

Emission&Shape

在这里插入图片描述

Size over Lifetime&Sub Emitters&Trails

在这里插入图片描述

Renderer

同其他粒子一致

控制

控制烟花开始停止,变色

public class Fireworks : MonoBehaviour
{
    // Start is called before the first frame update
    public ParticleSystem[] fireworks;
    int cnt=0;
    int l;
    
    void Start()
    {
        GameObject[] tmp;
        tmp = GameObject.FindGameObjectsWithTag("Fireworks");
        l=tmp.Length;
        fireworks = new ParticleSystem[l];
        
        
        for(int i = 0; i < l; ++i)
        {
            fireworks[i] = tmp[i].GetComponent<ParticleSystem>();
            fireworks[i].Stop();
        }
        

       
    }
    
    
    private void OnGUI() {
        if (GUI.Button(new Rect(Screen.width/2-150, Screen.height-100, 80, 50), "Start")) fireworks[cnt].Play();
        if (GUI.Button(new Rect(Screen.width/2-50, Screen.height-100, 80, 50), "Pause")) fireworks[cnt].Stop();
        if (GUI.Button(new Rect(Screen.width/2+50, Screen.height-100, 80, 50), "Change")){
            fireworks[cnt].Stop();
            cnt++;
            cnt%=l;
            fireworks[cnt].Play();
        }
    }
}

效果展示

在这里插入图片描述

演示视频

参考博客

unity 制作 粒子 烟花

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值