//удаляем пулю, регистрируем попадание у остальных игроков private void HitInUpdate() { if (_hitBulletPool.Count > 0) { foreach (var hitModel in _hitBulletPool) { foreach (var bullet in BulletsInGame) { int bulletNetworkID = bullet.GetComponent <SignalRIdentity>().NetworkID; int bulletDamage = bullet.GetComponent <BulletStats>().Damage; if (bulletNetworkID == hitModel.bulletID) { foreach (var target in _gameHelper.AllPlayers) { int targetHealth = target.GetComponent <PlayerStats>().Health; int targetNetworkID = target.GetComponent <SignalRIdentity>().NetworkID; BulletController bulletController = bullet.GetComponent <BulletController>(); if (bulletNetworkID == hitModel.targetID) { targetHealth -= bulletDamage; //если мало здоровья то отключаем игрока, надо будет переделать под рестарт игрока, либо переход его в меню со статистикой. if (targetHealth <= 0) { SyncObjectModel syncObjectModel = new SyncObjectModel(); syncObjectModel.Id = targetNetworkID; _signalRClient._disconnectedModels.Add(syncObjectModel); } if (!bullet.GetComponent <BulletStats>().Perforation) { bulletController.BulletOff(); } } } } } } } _hitBulletPool.Clear(); }