In this script, fire rate of bullet is controlled i.e, only 1 bullet fire at a time. public GameObject Bullet; //Drag and drop Bullet prefab inside Bullet in the inspector panel public Transform Position; //Drag and drop Shoot position inside position in the inspector panel float Attack_Timer = 0.3f; float Current_Attack_Timer; bool CanAttack; void Update( ) { Attack( ) ; } void Attack( ) { Attack_Timer += Time.deltaTime; if(Attack_Timer > Current_Attack_Timer) { CanAttack = true; } if(Input.GetKeyDown(KeyCode.Space) { if(CanAttack) { Instantiate(Bullet,Position.position,Quaterninon.identity); CanAttack = false; Attack_Timer = 0f; } } }