?????????任何武器都有自己的攻速或者是冷却时间,而攻速并不能由玩家自己通过鼠标的点击速度决定,所以需要有武器自己的攻击间隔,这里只要调整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;
}
}
}
}
生成子弹后给向前移动的速度实现发射。
|