예제 #1
0
 /// <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);
 }
예제 #2
0
    /// <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);
    }
예제 #3
0
 //加到委托链中自动更新面板  换弹
 private void Fens2(WeapenControllerBase wcb)
 {
     CalcBackBullet(wcb);
 }
예제 #4
0
    protected int cartridgeNum;   //弹夹数

    private void Awake()
    {
        WeapenInstance = this;
    }