hw8-粒子系統

作業內容-簡單粒子製作

這次的作業是三選一,所以我就選了這個簡單粒子製作。

  • 參考資源要求,製作一個粒子系統;
  • 使用 3.3 節介紹,用代碼控制使之在不同場景下效果不一樣。

代碼和視頻

實現過程

準備

新建一個空對象,重命名爲MyHalo,其下有三個粒子系統,分別是:

  • 中間光midLight的模擬
  • 光暈halo的模擬
  • 周圍星光shining的模擬
    在這裏插入圖片描述

參數設置

【midLight】

  • 因爲中間部分的粒子不會移動,所以我們得把粒子的Speed設置爲0,然後粒子的Shape我們可以設置爲Box或者Sphere,因爲我們主要的目的是讓光填充完這個粒子,顯的飽滿。
  • 粒子由於受四周的光照影響,在實際中,在從出生到消失的時候,肯定是無中生有,那麼一切光從黑暗中來最後消失與黑暗,所以最外部的顏色肯定是黑色。

參數設置如下:
1.基本設置
在這裏插入圖片描述
2.Emission 和 Shape
在這裏插入圖片描述
3.Color over Lifetime
在這裏插入圖片描述
4.Texture Sheet Animation 和 Renderer
Material採用的是下載資料中的一個。
在這裏插入圖片描述
目前效果:
在這裏插入圖片描述
【halo】

  • 光暈是通向四周360度的,所以旋轉方向應該是四周隨機的,設爲[-100,100]。
  • 光暈的Shape可以定義爲任何形狀,只要我們把半徑啥的都改成0,那麼它將從一個點發散出去。

參數設置如下:
1.基本設置
在這裏插入圖片描述
2.Emission 和 Shape
在這裏插入圖片描述
3.Color over Lifetime 和 Size over Lifetime
在這裏插入圖片描述
在這裏插入圖片描述
4.Texture Sheet Animation 和 Renderer
Material採用的是下載資料中的一個。
在這裏插入圖片描述
目前效果:
在這裏插入圖片描述
【shining】

  • 星光的特徵,也是無中生有,還有就是出生的時候顏色應該和閃光球的顏色一致,然後越來越淡(白色),最後消失於黑暗中(黑色)。
  • 星光的Size是從大到小,最後消失;Shape可以定義爲任何形狀,只要我們把半徑啥的都改成0,那麼它將從一個點發散出去。

參數設置如下:
1.基本設置
在這裏插入圖片描述
2.Emission 和 Shape
在這裏插入圖片描述
3.Color over Lifetime 和 Size over Lifetime
在這裏插入圖片描述
4.Texture Sheet Animation 和 Renderer
Material採用的是下載資料中的一個。
在這裏插入圖片描述

加上代碼控制

場景是:逐漸離開光源看到的景象,光源會不斷變小。
控制中間光的代碼:

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

public class change2 : MonoBehaviour
{

    ParticleSystem exhaust;
    float size = 1.7f;

    // Use this for initialization
    void Start()
    {
        exhaust = GetComponent<ParticleSystem>();
    }

    // Update is called once per frame
    void Update()
    {
        size = size * 0.999f;
        var main = exhaust.main;
        main.startSize = size;
    }
}

控制光暈的代碼:

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

public class change : MonoBehaviour {

    ParticleSystem exhaust;
    float size = 5f;

    // Use this for initialization
    void Start () {
        exhaust = GetComponent<ParticleSystem>();
    }

    // Update is called once per frame
    void Update () {
        size = size * 0.999f;
        var main = exhaust.main;
        main.startSize  = size;
    }
}

參考博客

https://blog
.csdn.net/qq_36312878/article/details/80492125

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章