Как проверить, что коллекция логических значений - это правда? - PullRequest
0 голосов
/ 22 мая 2019

Я пытался решить эту проблему самостоятельно ... безрезультатно.Моя цель - выяснить, является ли набор логических значений (InRightPosition) истинным, если каждый InRightPosition истинен, то -> AllInRightPosition = true и уничтожить GameObject, которому принадлежат дочерние элементы InRightPosition.Мой код:

public class PanelManager : MonoBehaviour 
{ 
    List slots = new List(); 
    bool allInRightPosition

  void Start()
  {
     for (int i = 0; i < 9; i++)
         slots.Add(false);
     foreach(Transform child in transform)
     {
         int index = 0;
         do
         {
            index = Random.Range(0, 9);
         } while (slots[index]);
         slots[index] = true;
         child.localPosition = new Vector3(index/3, index%3-2,0) /* *3 */;
     }
 }
 void Update()
 {
     foreach (Transform child in transform)
     {
         if (child.GetComponent<PanelMove>() != null && child.GetComponent<PanelMove>().InRightPosition == true)
         {
             allInRightPosition = true;
             print(allInRightPosition);
         }
         else if (child.GetComponent<PanelMove>() != null &&
                  child.GetComponent<PanelMove>().InRightPosition == false)
         {
             allInRightPosition = false;
             break;
         }
     }
 }

, что делает мой код: если один единственный InRightPosition = true, тогда AllInRightPosition = true вместо, если все inRightPosition = true, тогда AllInRightPosition = true.

Есть ли у кого-нибудьключ?

1 Ответ

3 голосов
/ 22 мая 2019

Разве ответ, который я дал вам здесь , не решил вашу проблему?

void Update()
 {
     allInRightPosition = true ;
     foreach (Transform child in transform)
     {
         PanelMove panelMove = child.GetComponent<PanelMove>()
         if( panelMove != null && !panelMove.InRightPosition )
         {
             allInRightPosition = false;
             break;
         }
     }
     if( allInRightPosition )
         Destroy( gameObject ) ;
 }
...