unresponsive - оператор в цикле for с несколькими переменными C # - PullRequest
0 голосов
/ 08 октября 2018

Как и в названии, у меня есть система WaveManaging, которая порождает врагов, основанных на врагах, которые еще не появятся и остаются живыми.

for (int enemiesRemainingToSpawn = currentWaveNumber ; enemiesRemainingToSpawn > 0;enemiesRemainingToSpawn -- , enemiesRemainingAlive ++)
    {
        print("enemies spawning" + enemiesRemainingToSpawn);
        print("enemies alive" + enemiesRemainingAlive);
    }

Сейчас это всего лишь тест, но кажется, что 'враги RemaingToSpawn - «не работает, в то время как« враги, оставаясь живыми »++.

На GameDev Discord, никто не нашел ничего плохого в этом, поэтому я здесь.Это выглядит хорошо для меня.Я попытался поместить его в тело цикла, но это не работает.я указал его в разделе инициализации (первом) цикла for, и снова это не работает.

В чем проблема?

edit:

public int enemiesRemainingToSpawn;
public int enemiesRemainingAlive;
public float afterWavePrepTime = 5f;
public GameObject basicEnemyPreFab;
public Transform[] spawnPoints;


private bool isWaveFinished = false;
private bool startNewWave = false;
public int currentWaveNumber;

void spawnEnemies ()
{
    int spawnPointIndex = Random.Range(0, spawnPoints.Length);

    for (int enemiesRemainingToSpawn = currentWaveNumber ; enemiesRemainingToSpawn > 0;enemiesRemainingToSpawn -- , enemiesRemainingAlive ++)
    {
        print("enemies spawning" + enemiesRemainingToSpawn);
        print("enemies alive" + enemiesRemainingAlive);
    }
}

Вывод таков, что врагиRemainingAlive постоянно увеличиваются, потому что EnemiesRemainingToSpawn не понижается, завершаясь бесконечным циклом.оставшийся спавн = 1, враги оставшиеся живы ++

1 Ответ

0 голосов
/ 08 октября 2018

Привет! Я пытаюсь запустить ваш код локально, исключая ваши объекты. Хорошо работает

 public static void spawnEnemies()
        {
         
         int enemiesRemainingAlive = 0;
         double afterWavePrepTime = 5.0;
       
         bool isWaveFinished = false;
         bool startNewWave = false;
         int currentWaveNumber;

        
            Random x = new Random();
             currentWaveNumber = x.Next(1, 7);

            for (int enemiesRemainingToSpawn = currentWaveNumber; enemiesRemainingToSpawn > 0; enemiesRemainingToSpawn--, enemiesRemainingAlive++)
            {
                Console.WriteLine("enemies spawning" + enemiesRemainingToSpawn);
                    Console.WriteLine("enemies alive" + enemiesRemainingAlive);
            }

            Console.ReadLine();

           
        }

        //out put
        // enemies spawning2
        //enemies alive0
        //enemies spawning1
        //enemies alive1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...