- Home /
Question by
jacob johnston · Jun 03, 2011 at 12:38 AM ·
instantiatetimeshootinvokerepeatinggetbuttondown
continuous shooting
i am making a space shooter game. i am looking for a way to make a while script that detects when the mouse 1 or "Fire1" input is down. but i don't want to have the bullets be instantiate every frame in the update. how would i make it so the bullets shot out only once every half a second or so while the input is there? any other suggestions. thank you
Comment
Best Answer
Answer by Eric5h5 · Jun 03, 2011 at 12:42 AM
Use InvokeRepeating and CancelInvoke, along with GetButtonDown and GetButtonUp:
var fireRate = .5;
function Update () {
if (Input.GetButtonDown("Fire")) {
InvokeRepeating("Shoot", .001, fireRate);
}
else if (Input.GetButtonUp("Fire")) {
CancelInvoke("Shoot");
}
}
function Shoot () {
// do shooty stuff here
}