protected virtual void fireWeapon() { if (getAmmoCount() > 0) { m_ammoCount--; // GameObject Tempprojectile = GameObject.Instantiate(projectile, m_gunFireingPoint, this.transform.rotation); GameObject Tempprojectile = m_projectilePool.getPoolObject(ProjectilePool.POOL_OBJECT_TYPE.BasicProjectile); Tempprojectile.transform.position = m_gunFireingPoint; Tempprojectile.transform.rotation = this.transform.rotation; Tempprojectile.transform.forward = (m_target.transform.position - m_gunFireingPoint).normalized; Tempprojectile.SetActive(true); ProjectileBasic projetcileBasic = Tempprojectile.GetComponent <ProjectileBasic>(); projetcileBasic.speed = 1f; projetcileBasic.setFiredFrom(m_ownersFaction); projetcileBasic.setTargetTransfrom(m_target.transform); if (playerWeapon) { projetcileBasic.setFollowTarget(true); } if (this.isActiveAndEnabled) { StartCoroutine(waitAndRecoil()); } } else { m_audioScource.PlayOneShot(m_soundManager.getEmptyGunSound()); } }