private void CheckAmmoPickup() { if (weapon == null) { return; } if (weapon.GetAmmo() < 0) { return; } IInteractable interactable = interactableChecker.GetNearestInteractable(); if (interactable == null) { return; } if (interactable.Equals(weapon)) { return; } if (interactable.GetType().IsAssignableFrom(weapon.GetType())) { Weapon pickup = (Weapon)interactable; int pickupAmmo = pickup.GetAmmo(); int newAmmo; if (pickupAmmo < 0) { newAmmo = -1; } else { newAmmo = pickupAmmo + weapon.GetAmmo(); } weapon.SetAmmo(newAmmo); WeaponAudioComponent audioComp = weapon.GetAudioComponent(); audioComp.Play("onCollecting"); Destroy(pickup.gameObject); } }