[英]unresponsive — operator in a for loop with multiple variables C#
就像標題中所說的那樣,我有一個waveManaging系統,該系統根據尚未產生並保持生命的敵人產生敵人。
for (int enemiesRemainingToSpawn = currentWaveNumber ; enemiesRemainingToSpawn > 0;enemiesRemainingToSpawn -- , enemiesRemainingAlive ++)
{
print("enemies spawning" + enemiesRemainingToSpawn);
print("enemies alive" + enemiesRemainingAlive);
}
目前這只是一個測試,但似乎“ enemiesRemaingToSpawn-”不起作用,而“ enemiesRemainingAlive ++”卻起作用。
在GameDev Discord上,沒有人發現任何錯誤,這就是為什么我在這里。 對我來說也很好。 我嘗試將其放在循環體內,但效果不佳。 我已經在for循環的initializing(first)部分中指定了它,這再次不起作用。
有什么問題嗎?
編輯:
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);
}
}
輸出結果是敵人的剩余生命持續上升,因為敵人的剩余生命不會下降,從而陷入了無休止的循環。 missingtospawn = 1,敵人剩余生命++
嗨,我嘗試通過排除對象在本地運行代碼。
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.