【Unity2D 2022:Particle System】添加拾取粒子特效

07-08 1104阅读

一、创建粒子特效游戏物体

【Unity2D 2022:Particle System】添加拾取粒子特效

【Unity2D 2022:Particle System】添加拾取粒子特效

二、修改粒子系统属性

1. 基础属性

【Unity2D 2022:Particle System】添加拾取粒子特效

        (1)修改发射粒子持续时间(Duration)为3s

        (2)取消勾选循环(Looping)

        (2)修改粒子存在时间(Start Lifetime)为0.5~1之间的随机值

        (3)修改粒子初始速度(Start Speed)为0.6~1.5之间的随机值

        (4)修改粒子初始尺寸(Start Size)为0.7~1之间的随机值

        (5)修改粒子初始旋转角度(Start Rotation)为0~360之间的随机值

2. 发射器(Emission)

【Unity2D 2022:Particle System】添加拾取粒子特效

        (1)设置发射粒子速度(Rate over Time)为0(即不发射粒子)

        (2)添加爆发(Burst),Time为0,Count为20

3. 发射器形状(Shape)

【Unity2D 2022:Particle System】添加拾取粒子特效

【Unity2D 2022:Particle System】添加拾取粒子特效

        (1)设置形状(Shape)为Circle

        (2)设置旋转角度(Rotation)在x轴方向为0

        (3)设置半径为(Radius)0.4

        (4)设置模式(Mode)为Burst Spread(爆炸扩散)

4. 粒子速度(Velocity over Lifetime)

【Unity2D 2022:Particle System】添加拾取粒子特效

        (1)设置速度更改器(Speed Modifier)为Curve,并编辑速度曲线

5. 粒子尺寸(Size over Lifetime)

【Unity2D 2022:Particle System】添加拾取粒子特效

        (1)编辑粒子尺寸(Size)曲线(与速度曲线相似,可直接复制)

6. 粒子旋转(Rotation over Lifetime)

【Unity2D 2022:Particle System】添加拾取粒子特效

        (1)设置角速度(Angular Velocity)为90

7. 粒子纹理动画(Texture Sheet Animation)

【Unity2D 2022:Particle System】添加拾取粒子特效

        (1)添加粒子精灵图片

三、创建拾取特效预制体

【Unity2D 2022:Particle System】添加拾取粒子特效

四、拾取草莓时播放特效

1. 编辑草莓脚本:

        (1)创建拾取特效预制体

public class Strawberry : MonoBehaviour {
    // 创建拾取特效预制体
    public GameObject pickUpEffectParticlePrefab;
}

        (2) 在上一章中已经写了一个删除粒子特效的方法。为了提高代码的复用性,可以新建一个工具类,把删除粒子特效的方法移动到Tool类中,使子弹脚本和草莓脚本都可以调用删除粒子特效的方法(注意:这里的deleteEffectParticle方法是公开、静态的)

public class Tool : MonoBehaviour
{
    // 在1s后删除粒子特效
    public static async Task deleteEffectParticle(GameObject EffectParticle, float delay)
    {
        // 等待1s
        await Task.Delay(1000);
        // 删除粒子特效
        Destroy(EffectParticle);
    }
}

        (3)修改子弹脚本中的deleteHitEffectParticle方法,调用Tool类的deleteEffectParticle方法

public class Bullet : MonoBehaviour
{
    // 击中敌人
    private void OnCollisionEnter2D(Collision2D collision)
    {
        Enemy enemy = collision.gameObject.GetComponent();
        if(enemy != null) {
            enemy.changeHealthPoint(-25);
            GameObject hitEffectParticle = Instantiate(hitEffectParticlePrefab, transform.position, Quaternion.identity);
            // 调用Tool类中的deleteEffectParticle方法删除粒子特效
            Tool.deleteEffectParticle(hitEffectParticle, 1);
        }
        Destroy(gameObject);
    }
}

        (4)同理,在草莓脚本中调用Tool类的deleteEffectParticle方法

public class Strawberry : MonoBehaviour 
{
    private void OnTriggerEnter2D(Collider2D collision) {
        Ruby ruby = collision.GetComponent();
        if(ruby != null) {
            if(ruby.healthPoint  

2. 为草莓预制体添加拾取粒子特效

【Unity2D 2022:Particle System】添加拾取粒子特效

 最终效果如下图所示:

【Unity2D 2022:Particle System】添加拾取粒子特效

        本章完。感谢阅读!

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]