/// <summary> /// 读取子弹 /// </summary> IEnumerator loadBullet(WeapenControllerBase wcb) { wcb.ChangeCanShoot(false); while (loadAmount < 0.95f) { loadAmount += Random.Range(0.01f, 0.1f); gunUIPanelView.ReloadBullet.fillAmount = loadAmount; yield return(new WaitForSeconds(0.1f)); } gunUIPanelView.ReloadBullet.fillAmount = 1; loadAmount = 0; gunUIPanelView.ReloadBullet.gameObject.SetActive(false); wcb.ChangeCanShoot(true); }
/// <summary> /// 计算后备弹 /// </summary> private void CalcBackBullet(WeapenControllerBase wcb) { if (backBullet == 0) { return; } gunUIPanelView.ReloadBullet.gameObject.SetActive(true); if (backBullet <= cartridgeNum) { int tempNum = backBullet + currentBullet; if (tempNum > cartridgeNum) { Debug.Log("后备弹夹+当前弹夹剩余子弹数为:" + tempNum); cartridgeNum = currentBullet; Debug.Log("cartridgeNum:" + cartridgeNum + "backBullet:" + backBullet); backBullet = tempNum - currentBullet - shootNum; Debug.Log("backBullet:" + backBullet); if (backBullet < 0) { cartridgeNum += backBullet; backBullet = 0; } } else { cartridgeNum = backBullet; backBullet = 0; } } else { backBullet -= shootNum; } gunUIPanelView.CartridgeNum.text = "/" + backBullet; Debug.Log("当前备弹:" + backBullet); StartCoroutine("loadBullet", wcb); }
//加到委托链中自动更新面板 换弹 private void Fens2(WeapenControllerBase wcb) { CalcBackBullet(wcb); }
protected int cartridgeNum; //弹夹数 private void Awake() { WeapenInstance = this; }