private void ShootThing() { if (m_Player.PInput.Shoot && m_ShootCooldown == 0) { Vector3 angle = new Vector3(TankBarrel.eulerAngles.x, m_TankHead.eulerAngles.y, m_Player.transform.eulerAngles.z); Quaternion projectileRotation = Quaternion.Euler(angle); ProjectileBehaviour p = Instantiate(m_EquippedWeapon.ProjectilePrefab, FirePosition(), projectileRotation).GetComponent <ProjectileBehaviour>(); //p.Initalize(m_Player, m_EquippedWeapon, TankBarrel.forward); p.Initalize(m_Player, m_EquippedWeapon, TankBarrel.forward); m_ShootCooldown = m_EquippedWeapon.Cooldown; m_Player.Camera.Bump = (-TankBarrel.forward * m_EquippedWeapon.CameraImpact); m_Player.AddForce(-TankBarrel.forward * m_EquippedWeapon.TankForce); AddSpread(m_EquippedWeapon.SpreadAngle); // Reset the timer which makes the animation play m_BarrelAnimationTimer = 0; // Check if the weapon does not have infinite ammo if (m_EquippedWeapon.StartingAmmo > 0) { m_CurrentAmmo--; if (m_CurrentAmmo <= 0) { ResetWeapon(); } } } }