作业内容-简单粒子制作
这次的作业是三选一,所以我就选了这个简单粒子制作。
代码和视频
实现过程
准备
新建一个空对象,重命名为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
.youkuaiyun.com/qq_36312878/article/details/80492125