| ?????????任何武器都有自己的攻速或者是冷却时间,而攻速并不能由玩家自己通过鼠标的点击速度决定,所以需要有武器自己的攻击间隔,这里只要调整FireSpeed间隔时间来实现攻速变化。 ? ? ? ? 玩家可选择的开火方式有两种:单点、长按。单点可以选择性开火,以节省子弹,长按可以更方便攻速较快的武器使用,但无论怎样,再快的单点也会受攻速影响,并不会比长按更快。 ? ? ? ? 如下为完整代码: public class Weapon : MonoBehaviour {
    public GameObject bullet;//子弹对象
    public bool Cooldown;//是否冷却完毕
    private float Cooltime;//累加时间
    public float FireSpeed;//攻速间隔时间
    void Update() {
        if (Cooltime >= FireSpeed) {
            Cooldown = true;
            Cooltime = 0;
        } else {
            Cooltime = Cooltime + Time.deltaTime;
        }
        if (Input.GetMouseButton(0)) {
            if (Cooldown == true) {
                Instantiate(bullet, this.transform.position, this.transform.rotation);
                Cooldown = false;
            }
        }
    }
}
 生成子弹后给向前移动的速度实现发射。 |