You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Unity粒子子弹添加射击冷却机制?

Unity粒子子弹添加射击冷却的实现方法

要给这个粒子子弹添加射击冷却,核心就是通过时间差判断限制触发频率,具体修改步骤如下:

1. 添加冷却相关变量

在脚本中新增两个变量,分别控制冷却时长和记录上次射击的时间:

// 射击冷却时间(可在Inspector面板调整)
public float fireCooldown = 0.5f;
// 记录上次完成射击的时间
private float lastFireTime = 0f;

2. 修改输入触发逻辑

在Update方法里,给鼠标左键的触发条件加上冷却判断,只有当当前时间与上次射击时间的间隔大于等于冷却时长时,才允许触发射击:

private void Update()
{
    if (Input.GetKeyDown(KeyCode.Mouse0) && Time.time - lastFireTime >= fireCooldown)
    {
        particleSystem.Play();
        // 更新上次射击时间为当前时间
        lastFireTime = Time.time;
    }
}

修改后的完整脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BulletParticle : MonoBehaviour
{
    public float damage = 10f;
    public ParticleSystem particleSystem;
    public GameObject spark;
    // 新增:射击冷却时间
    public float fireCooldown = 0.5f;
    // 新增:记录上次射击时间
    private float lastFireTime = 0f;

    List<ParticleCollisionEvent> colEvents = new List<ParticleCollisionEvent>();

    private void Update()
    {
        // 加入冷却判断逻辑
        if (Input.GetKeyDown(KeyCode.Mouse0) && Time.time - lastFireTime >= fireCooldown)
        {
            particleSystem.Play();
            lastFireTime = Time.time;
        }
    }

    private void OnParticleCollision(GameObject other)
    {
        int events = particleSystem.GetCollisionEvents(other, colEvents);

        for (int i = 0; i < events; i++)
        {
            Instantiate(spark, colEvents[i].intersection, Quaternion.LookRotation(colEvents[i].normal));
        }

        if (other.TryGetComponent(out enemy en))
        {
            en.TakeDamage(damage);
        }
    }
}

逻辑说明

  • Time.time是游戏从启动到当前的总运行时间(秒),每次触发射击后,我们把lastFireTime更新为当前时间。
  • 下次触发时,通过Time.time - lastFireTime >= fireCooldown判断是否已经过了冷却期,只有满足条件才允许再次射击。
  • 你可以在Unity编辑器的Inspector面板中调整fireCooldown的值,快速测试不同的冷却效果。

内容的提问来源于stack exchange,提问作者Iceigloopenguin Plays

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 12:36:15