//fires one projectile at given position with given direction void Fire(Vector3 position, Vector3 direction) { //make bullet and flash, handle different cases depending on current weapon switch (currentWeapon) { case 1: GameObject projFlareGun = Instantiate <GameObject>(ProjectileFlareGun, position, transform.rotation); //set bullet velocity projFlareGun.GetComponent <Rigidbody2D>().velocity = (direction * ProjectileSpeed) + (Vector3)myRb.velocity; //move bullet projFlareGun.transform.Translate(Vector3.up * 0.80f, Space.Self); projFlareGun.transform.Translate(Vector3.right * 0.475f, Space.Self); AudioManage.PlaySound("flareShot"); break; case 2: GameObject projHarpoonGun = Instantiate <GameObject>(ProjectileHarpoonGun, position, transform.rotation); //set bullet velocity projHarpoonGun.GetComponent <Rigidbody2D>().velocity = (direction * ProjectileSpeed) + (Vector3)myRb.velocity; //move bullet projHarpoonGun.transform.Translate(Vector3.up * 0.80f, Space.Self); projHarpoonGun.transform.Translate(Vector3.right * 0.475f, Space.Self); break; } GameObject newMuzzleFlash = Instantiate <GameObject>(MuzzleFlashEffect, position, transform.rotation); //move flash newMuzzleFlash.transform.Translate(Vector3.up * 0.80f, Space.Self); newMuzzleFlash.transform.Translate(Vector3.right * 0.475f, Space.Self); }