2015-02-10 132 views
0

好吧,所以我有一個循環內循環,我想告訴第一個循環,當第二個循環內的if語句爲真時繼續。下面的代碼不起作用,但我怎樣才能使它添加最少的代碼。提前致謝!我在Unity3D btw工作。繼續主循環

public void AssignNearby(List<GameObject> _nodeList, GameObject _current) 
{ 
    nearby.Clear(); 
    foreach(GameObject node in _nodeList) 
    { 
    int nodeId = node.GetComponent<NodeScript>()._ID; 
     foreach(int allergie in allergies) 
     { 
      if(nodeId == allergie || nodeId == identity) 
      { 
       continue; 
      } 
     } 

Vector3 curPos = _current.transform.position; 
Vector3 nearPos = node.transform.position; 

    switch(identity) 
    { 
     case 1: 
      if(nodeId == 5) 
      { 
       node.renderer.material.color = Color.black; 
       nearby.Add(node); 
       goto case 2; 
      } 
     break; 
     case 2: case 3: case 4: case 6: 
      if(Mathf.Abs(curPos.x - nearPos.x) + Mathf.Abs(curPos.y - nearPos.y) + Mathf.Abs(curPos.z - nearPos.z) < 2) 
      { 
       node.renderer.material.color = Color.black; 
       nearby.Add(node); 
      } 
     break; 
     case 5: 
      if(nodeId == 1) 
      { 
       node.renderer.material.color = Color.black; 
       nearby.Add(node); 
      } 
     break; 
    } 
} 

}

回答

1
foreach(GameObject node in _nodeList) 
{ 
int nodeId = node.GetComponent<NodeScript>()._ID; 
    foreach(int allergie in allergies) 
    { 
     if(nodeId != allergie && nodeId != identity) 
     { 
      Your code here 
     } 
    } 
} 
+0

它只是打破了電流回路 – 2015-02-10 12:13:52

+0

我貼得更上面的腳本的,我希望它跳過部分繼續後,如果,如果聲明是真實的 – 2015-02-10 12:16:51