private async UniTask ReloadTask() { Logger.Debug("Reloading player's weapon."); isReloading = true; UpdateUI(); await TimeHelper.CountUp( maxWeaponProjectileCount - currentProjectileCount, weaponReloadTime, tick => { //Backup if (currentProjectileCount == maxWeaponProjectileCount) { return; } //Increase projectiles currentProjectileCount++; UpdateUI(); }, reloadCancellation.Token); isReloading = false; UpdateUI(); reloadCancellation.Dispose(); reloadCancellation = null; }