I’m trying to make my game have the option of holding down the screen for auto-firing of bullets, and if the player wants to tap the screen , the bullets should also instantiate as fast as they can tap. I have the auto-fire script set like this:
bool fire;
GunControl other;
GameObject gun;
float fireRate;
float lastShot;
void Start () {
gun = GameObject.Find("Gun"); //Finds Gun Gameobject
other = (GunControl)gun.GetComponent(typeof(GunControl)); //Get GunControl Script From Gun
fireRate = 0.25f;
lastShot = 0.0f;
}
void Update () {
if (fire == true)
{
FireRate(); //call FireRate function below
}
}
void FireRate()
{
if (Time.time > fireRate + lastShot) //if Time passed is more than fireRate set above + Seconds since last shot , fire again..
{
other.Fire();
lastShot = Time.time;
}
}
public void OnPress(bool isPressed)
{
if (enabled)
{
if (isPressed)
{
fire = true;
}
else
{
fire = false;
}
}
}
public void OnClick( )
{
// ??????????????
}
}
My question is how to prevent that first shot from calling both the fireRate function and also the OnClick at the same time… Because once I tap it shoots two bullets, but if i continue to hold on that tap it’ll just do the auto-fire.