コード例 #1
0
    private void AmmoUIUpdateHandler(object sender, Gun.GunCurrentInfo e)
    {
        var sizeDelta = gunUI[e.gunIndex].gunBullets.sizeDelta;

        sizeDelta = new Vector2(sizeDelta.x, e.currentSize);
        gunUI[e.gunIndex].gunBullets.sizeDelta = sizeDelta;
        if (e.currentAmmo == 0)
        {
            StartCoroutine(Reload(e));
        }
    }
コード例 #2
0
    /// <summary>
    /// Reloads a gun ammo UI.
    /// </summary>
    IEnumerator Reload(Gun.GunCurrentInfo e)
    {
        var gun       = gunUI[e.gunIndex];
        var sizeDelta = gun.loadBar.sizeDelta;
        //this float represent the loading bar increment per miliseconds.
        //126 is the load bar width on UI.
        //0.1f represents the miliseconds
        float sizeIncrement = 126 / e.reloadTime * 0.1f;

        while (e.currentLoadTime < e.reloadTime)
        {
            sizeDelta             = new Vector2(sizeDelta.x += sizeIncrement, sizeDelta.y);
            gun.loadBar.sizeDelta = sizeDelta;
            e.currentLoadTime    += 0.1f;
            gun.e = e;
            yield return(new WaitForSeconds(0.1f));
        }
        gun.e.currentAmmo        = gun.e.maxAmmo;
        gun.loadBar.sizeDelta    = new Vector2(0, gun.loadBar.sizeDelta.y);//Sets the width back to zero.
        gun.gunBullets.sizeDelta = new Vector2(gun.gunBullets.sizeDelta.x, gun.e.ammoBulletMaxSize);
    }