作業內容-簡單粒子製作
這次的作業是三選一,所以我就選了這個簡單粒子製作。
代碼和視頻
實現過程
準備
新建一個空對象,重命名爲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