Unity3D-粒子光环(站在师兄的肩膀上)

本文详细介绍了如何使用Unity3D创建具有两层旋转、随机大小和速度、点击响应扩展收缩的粒子光环效果,包括粒子系统的配置、代码实现、透明度和颜色控制以及点击事件处理等步骤。
摘要由CSDN通过智能技术生成

粒子光环

前半部分参考师兄博客(https://blog.csdn.net/simba_scorpio/article/details/51251126)

目标效果:
- 两层粒子光环,旋转方向相反
- 粒子大小随机
- 粒子运动在一定半径附近随机运动,运动速度有明显差异
- 点击后内层光环扩张,外层光环收缩,再点击恢复

1. 新建对象

新建空对象myParticle,给myParticle新建两个空对象outer和inter,分别表示内层光环和外层光环。

结构图

给outer和inter添加Particle System的组件,不用更改什么属性。下面主要针对outer,即外层光环进行说明。

2. 新建代码

新建particle类,用来实现粒子效果,新建ParticalInfo类用来储存单个粒子的信息。

public class particle : MonoBehaviour{
  
public class ParticalInfo{
    public float radius;    //粒子旋转的半径
    public float angle;     //粒子旋转的角度
    public float time;      //用于计算ingPong函数的时间
    public float size;      //粒子大小

    public ParticalInfo(float r, float a, float t, float s){
        radius = r;
        angle = a;
        time = t;
        size = s;
    }
}

particle类的成员变量有两种,公有成员可以在界面上进行调控,私有成员进行内部的逻辑运算。

public int number = 30000;          //粒子数量
public float MaxSize = 0.1f;        //粒子最大半径
public float MinSize = 0.03f;       //粒子最小半径
public float MaxRadius = 12f;       //扩展时的最大运动半径
public float MinRadius = 6f;        //扩展时的最小运动半径
public float collect_MaxRadius = 4f;//收缩时的最大运动半径
public float collect_MinRadius = 1f;//收缩时的最小运动半径
public bool clockWise = true;       //是否顺时针运动
public float speed = 2f;            //运动速度
public float pingPong = 0.02f;      //浮游偏移量
private ParticleSystem particleSys;             //粒子系统
private ParticleSystem.Particle[] particleArr;  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值