【Unity2D 2022:Particle System】添加烟雾粒子特效

一、为敌人添加粒子系统

二、修改粒子系统属性

1. 设置粒子系统向上匀速运动

        (1)将Linear属性的x、z轴设置为0,y轴设置为1(红)

        (2)将space属性设置为World(即世界坐标系)(蓝)

2. 给粒子特效添加精灵贴图

        (1)启用Texture Sheet Animation(纹理表动画)

41367fcbf49e40a8a3dec345b21d7531.png

        (2)点击加号添加一个纹理,并将两张厌恶图片导入到纹理中

2f0769c5eaee45b9ada50e8242311262.png

3. 设置两张图片随机播放(防止烟雾粒子变化)

        (1)将Start Frame设置为Random Between Two Constants

1433ceab58194586af65e3e4ffcafd18.png

        (2)将Start Frame设置为0和1

e8d39c4a744f4a61bad19a9e84aa9d25.png

        (3)选中Frame Over Time图像,将底部的Particle System Curves窗口向上拉

4f45027be7f546e08335362dd8b4e20d.png

        (4)点击第二个点,按delete键删除点

5b912b7b0669421fa75c8f8be6687106.png

4. 调整烟雾粒子出现的位置和角度

        角度设置为5,半径设置为0

af935770889c454588e4cc2423350611.png

5. 修改粒子的生命周期Start Lifetime(例如修改为1s)

        (1)最少存在1s

47ca05f2652a4c60bb8e5f7b0f89a07a.png

        (2)将生命周期设置为两个数之间的随机值

868312dcb1814752adcf2a45aa78976f.png

        (3)设置粒子生命周期为1s到2s之间的随机值

3f6fe05ccb76433e8c4aaab81f95bced.png

6. 设置粒子速度为0.5-1之间的随机值(步骤同上)

8696359a9f0f44f2b378b5c27f0f4aa5.png

7. 设置粒子的大小为0.3-0.5之间的随机值(步骤同上)

457881c88f6f410cb26ec7b0231ea67e.png

8. 设置粒子的透明渐变效果

        (1)勾选Color over Lifetime,并打开设置窗口

0b944785b844434d8a5a6b01d271b7fb.png

        (2)点击右上角的箭头,将Alpha(透明度)的值设为0

971fd65d259441d0a8ba35b358bc2fe5.png

9. 设置粒子大小的渐变效果

        (1)勾选Size over Lifetime,点击曲线,拉出曲线绘制面板

f8db7022678a400491989d866466fe63.png

        (2)调整两个点的位置,按住小点并拖动可以改变斜率

43a23cdaf9c94132a033373e5c8ec63b.png

        (3)最终的图像如下图所示

5f4cb0c3c65f4f45936a5031be3673fe.png

三、设置修复机器人后禁用烟雾粒子效果

1. 问题:机器人在修复后依然冒烟

2. 解决方法:

        编辑敌人脚本:

        (1)创建粒子系统对象

public class Enemy : MonoBehaviour
{
    // 创建粒子系统对象
    ParticleSystem smokeEffect;
}

        (2)获取粒子系统组件

public class Enemy : MonoBehaviour
{
    // 创建粒子系统对象
    ParticleSystem smokeEffect;

    void Start()
    {
        // 获取粒子系统组件
        smokeEffect = GetComponent<ParticleSystem>();
    }
}

        (3) 当机器人修复后,停用粒子系统

public class Enemy : MonoBehaviour
{
    // 创建粒子系统对象
    ParticleSystem smokeEffect;

    void Start()
    {
        // 获取粒子系统组件
        smokeEffect = GetComponent<ParticleSystem>();
    }

    // 敌人修复完成
    public void enemyFixed()
    {
        // 停用粒子系统
        smokeEffect.Stop();
    }

}

3. 修改后,效果如下图所示:

        本章完。感谢阅读!

  • 23
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值