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);
        }
示例#2
0
        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);
        }