Как проверить, что все булевы значения верны?

Я пытался решить эту проблему самостоятельно... безрезультатно. Моя цель - выяснить, является ли набор логических значений (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.

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

Этот вопрос был опубликован на форумах Unity: answer.unity.com/questions/1633878/…, и, похоже, там был дан ответ.

user47589 22.05.2019 15:15

спасибо за добрый жест, понял :-)

Muhammad usman 22.05.2019 15:20

Могу ли я добавить, надеюсь, полезный совет: если transform поддерживает LINQ, вы можете сделать это в одной строке, например. allInRightPosition = !transform.Any(child => !child.GetComponent<PanelMove>().InRightPosition)

StackLloyd 22.05.2019 15:28

если вы не получаете правильных ответов там, вы можете опубликовать здесь, это ограничено только на форумах stackexchange, если бы это было опубликовано здесь раньше, оно было бы помечено как дубликат!

Muhammad usman 22.05.2019 15:31

Нет, перекрестная публикация не рекомендуется на сайтах, отличных от StackExchange. Все вы должны сделать это: укажите это сами. Дайте нам знать. Это все. Прочтите ссылку.

user47589 22.05.2019 15:36
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
4
6
126
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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 ) ;
 }

@Muhammadusman А в чем может быть проблема? "Доктор, мне больно" - это не полезная информация.

Draco18s no longer trusts SE 22.05.2019 15:22

Отлично, но вы так и не описали, какие еще у вас «проблемы».

user47589 22.05.2019 15:24

на самом деле у меня были проблемы с логическим значением, которое у меня не работало, поэтому я понял это, увидев ссылку, которую вы дали :-)

Muhammad usman 22.05.2019 15:27

Другие вопросы по теме