【Unity3D】粒子光环

作业要求


参考http://i-remember.fr/en 这类网站,使用粒子流编程控制制作一些效果, 如“粒子光环”

这个网站打不开,参考了一下师兄们的博客的图片:
在这里插入图片描述
我看了一下,我感觉和上课做的粒子海洋有一些相似,就是需要变成一个环形。

制作流程


粒子光环制作
  • 添加一个空对象,并且添加部件ParticleSystem,然后简单设置一下属性:

在这里插入图片描述
再设置一下Render的属性中的材料。

粒子光环的属性

创建一个脚本ParticleCircle

	public ParticleSystem myparticleSystem;	//粒子系统
    private ParticleSystem.Particle[] particleArray;
    private SingleParticle[] points;
    public Gradient grad;
    int count = 1000;
    public float size = 0.5f;
    public float minRadius = 3.0f;
    public float maxRadius = 6.0f;
    public float speed = 0.5f; // 速度参数

  • ParticleSystem.Particle[] particleArray

粒子数组,保存了每一个粒子的状态,同时规定一个数量count,也就是数组的大小。

  • SingleParticle[] points

记录了每个粒子对于整个光环的状态,两个最重要的属性角度与半径,因为每个粒子都是绕中心点运动,所以运动轨迹会有一个半径,运动到什么地方就需要角度来记录。这里用到自己定义的一个类SingleParticle。

  • Gradient grad

颜色渐变器

  • 粒子大小,光环内径外径,转圈速度,旋转方向等。
粒子的位置属性

定义的一个类SingleParticle:通过角度和半径来估算粒子所在的xy平面的面积,xy坐标就是通过三角函数来计算出来。

public class SingleParticle {
   
   
    public float angle;
    public float radius;

    private float x = 0.0f;
    private float y = 0.0f;


    public void CalPosition() {
   
   
        float temp = angle / 180.0f * Mathf.PI;
        y = radius * Mathf.Sin(temp);
        x = radius * Mathf.Cos(temp);
    }
    public SingleParticle(float angle, float radius) {
   
   
        this.angle = angle;
        this.radius = radius;
    }

    public 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值