for-loop - 在unityscript中的for循环中停止一个代码

标签 for-loop unity-game-engine unityscript

我有一个 for 循环,您可以在这个问题的底部看到它,在这个 for 循环内有多个 if 语句,我希望如果调用其中一个 if 语句,则 if-对于该 for 循环的其余部分,语句将被禁用。有办法这样做吗?

for (var i = 0; i < chunksInScene.length ; i++) {
    if(chunksInScene[i].name.Substring(0,5) == "Chunk" || chunksInScene[i].name.Substring(0,5) == "_TERR" || chunksInScene[i].name.Substring(0,5) == "ACTIV") {
        if(chunksInScene[i].tag != "Player") {
                if(chunksInScene[i].Equals(chunk1)){load1 = false;continue;}
                if(chunksInScene[i].Equals(chunk2)){load2 = false;continue;}
                if(chunksInScene[i].Equals(chunk3)){load3 = false;continue;}
                if(chunksInScene[i].Equals(chunk4)){load4 = false;continue;}
                if(chunksInScene[i].Equals(chunk5)){load5 = false;continue;}
                if(chunksInScene[i].Equals(chunk6)){load6 = false;continue;}
                if(chunksInScene[i].Equals(chunk7)){load7 = false;continue;}
                if(chunksInScene[i].Equals(chunk8)){load8 = false;continue;}
                if(chunksInScene[i].Equals(chunk9)){load9 = false;continue;}
                if(chunksInScene[i].Equals(chunk10)){load10 = false;continue;}
                if(chunksInScene[i].Equals(chunk11)){load11 = false;continue;}
                if(chunksInScene[i].Equals(chunk12)){load12 = false;continue;}
                if(chunksInScene[i].Equals(chunk13)){load13 = false;continue;}
                if(chunksInScene[i].Equals(chunk14)){load14 = false;continue;}
                if(chunksInScene[i].Equals(chunk15)){load15 = false;continue;}
                if(chunksInScene[i].Equals(chunk16)){load16 = false;continue;}
                if(chunksInScene[i].Equals(chunk17)){load17 = false;continue;}
                if(chunksInScene[i].Equals(chunk18)){load18 = false;continue;}
                if(chunksInScene[i].Equals(chunk19)){load19 = false;continue;}
                if(chunksInScene[i].Equals(chunk20)){load20 = false;continue;}
                if(chunksInScene[i].Equals(chunk21)){load21 = false;continue;}
                if(chunksInScene[i].Equals(chunk22)){load22 = false;continue;}
                if(chunksInScene[i].Equals(chunk23)){load23 = false;continue;}
                if(chunksInScene[i].Equals(chunk24)){load24 = false;continue;}
                if(chunksInScene[i].Equals(chunk25)){load25 = false;continue;}
        }
    }
}

最佳答案

由于您不想停止循环,但为了循环的提醒,请忽略执行的 if 语句。然后您需要为每个 if 语句创建一个条件。

您可以创建一个 boolean 类型的数组,并在其中一个 if 内将其设置为 false。像这样:

var myArray : boolean[] = new boolean[NUMBER_OF_IFs];

if(myArray[0] && chunksInScene[i].Equals(chunk1)
{
   load1 = false;
   myArray[0] = false;
   continue;
}

您需要确保数组的每个元素都有一个代表 if 语句的元素。


这就是代码中的样子:

var myArray : boolean[] = new boolean[25];

for (var i = 0; i < chunksInScene.length ; i++) 
{
   // I changed this part, the long if statement was driving me crazy.
   var temp = chuckInScene[i].name.Substring(0,5);

   if((temp == "Chunk" || temp == "_TERR" || temp == "ACTIV") && chunksInScene[i].tag != "Player")
   {
       if(myArray[0] && chunksInScene[i].Equals(chunk1))
         {load1 = false; myArray[0] = false;continue;}

       if(myArray[1] && chunksInScene[i].Equals(chunk2))
         {load2 = false; myArray[1] = false; continue;}

       if(myArray[2] && chunksInScene[i].Equals(chunk3))
         {load3 = false; myArray[2] = false; continue;}

       .
       .
       .
       // You write the rest.
       if(myArray[25] && chunksInScene[i].Equals(chunk25))
         {load25 = false; myArray[25]; continue;}
    }
}

关于for-loop - 在unityscript中的for循环中停止一个代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24590821/

相关文章:

c++ - 如何从理论上计算嵌套循环的运行时间?

ios - Vuforia IOS 崩溃。由于内存问题而终止

c# - Unity3d 中的多线程脚本调用

unity-game-engine - 将玩家信息保存在外部文件中

javascript - Unity js 脚本不工作

ios - 在 NSArray 2 中搜索 NSArray 1 以获取值匹配元素的最佳方法

java - For 循环打印不正确 "."

php - 检查脚本完成时间

javascript - Unity3D : Error with my code

c# - unity 为什么我的视频播放器上没有播放音频?