private void TickProjectiles() { for (var i = 0; i < m_Projectiles.Count; i++) { IProjectile projectile = m_Projectiles[i]; projectile.TickApproaching(); if (projectile.DidHit()) { projectile.DestroyProjectile(); m_Projectiles[i] = null; } } m_Projectiles.RemoveAll(projectile => projectile == null); }
private void TickProjectiles() { for (int i = 0; i < m_Projectiles.Count; i++) { IProjectile projectile = m_Projectiles[i]; projectile.TickApproaching(); if (projectile.DidHit()) { projectile.DestroyProjectile(); m_Projectiles[i] = null; //Не можем remove в foreach - нельзя модифицировать коллекцию, по которой enumerate //В случае for можно было бы удалить, но тогда нужно думать, что с индексом, проще так } } m_Projectiles.RemoveAll(projectile => projectile == null); }