public void CanShoot() { if (chamberedRound == true) { Shoot(); chamberedRound = false; if (gun_magazine != null && gun_magazine.AmmunitionCheck(gun_magazine.CURRENT_MAG_SIZE)) { gun_magazine.CURRENT_MAG_SIZE = gun_magazine.CURRENT_MAG_SIZE - 1; gun_magazine.cartridgeHeight.gameObject.SetActive(true); chamberedRound = true; } if (gun_magazine.CURRENT_MAG_SIZE == 0) { gun_magazine.cartridgeHeight.gameObject.SetActive(false); } disableBulletHeightRenderer = false; } else { Debug.Log("Ammunition Check Failed - OUT OF AMMO!"); //disableBulletHeightRenderer = true; chamberedRound = false; if (gun_magazine != null) { magEjectSfx.Play(); } EjectMagazine(); } }
public void AttachMagazine(Collider magazine) { gunMag = magazine.gameObject; //gunMagVar = magazine.GetComponent<GunMagazine>(); gunMag.gameObject.tag = "NonGrabable"; gunMag.GetComponent <Transform>().parent = null; // setting null to detach from controller gun_magazine = magazine.GetComponent <GunMagazine>(); gunMag.GetComponent <Transform>().parent = GameObject.FindGameObjectWithTag("Gun").transform; //this needs to change to have mag go to correct gun if multiple guns exist gunMag.GetComponent <Transform>().GetComponent <Transform>().localPosition = new Vector3(10.193f, -0.404f, -6.474f); gunMag.GetComponent <Transform>().GetComponent <Transform>().localRotation = Quaternion.Euler(0, 0, 0); gunMag.GetComponent <BoxCollider>().enabled = false; gunMag.GetComponent <Rigidbody>().isKinematic = true; reloadSfx.Play(); if (gun_magazine.AmmunitionCheck(gun_magazine.CURRENT_MAG_SIZE) && chamberedRound == false) { chamberedRound = true; gun_magazine.CURRENT_MAG_SIZE = gun_magazine.CURRENT_MAG_SIZE - 1; if (gun_magazine.CURRENT_MAG_SIZE > 0) { gun_magazine.cartridgeHeight.gameObject.SetActive(true); } else { gun_magazine.cartridgeHeight.gameObject.SetActive(false); } } }