Установка родительской кнопки отключена? - PullRequest
0 голосов
/ 28 сентября 2018

Итак, у меня есть скрипт, который создает кнопки, и скрипт, который делает эти кнопки взаимодействующими в определенных сценариях.

Проблема в том, что в скрипте, который создает кнопки, 2 из них создают больше дочерних кнопок под ними.С помощью моего следующего кода я могу легко сделать эти кнопки доступными для взаимодействия, когда захочу, но они не узнают родителей.Я понимаю, почему (потому что мой список проверяет childs), но я понятия не имею, как это исправить.Сделать второй список для родительских кнопок или?Код ниже.

MenuButton[] MenuButtons = _selectionEditMenuPanel.GetComponentsInChildren<MenuButton>(true);
        for (int i = 0; i < MenuButtons.Length; i++)
        {
            if (MenuButtons[i].name == "edit_group" || MenuButtons[i].name == "edit_ungroup")
            {
                if (_selection.SelectedPageObject.IsGroup())
                {
                    MenuButtons[i].GetComponent<MenuButton>().menuButton.GetComponent<TestButton>().Interactable = true;
                    if (!((PageObjectGroup)_selection.SelectedPageObject).IsTempGroup)
                    {
                        MenuButtons[i].title.text = TranslationSystem.Request("edit_ungroup");
                        MenuButtons[i].name = "edit_ungroup";
                    }
                    else
                    {
                        MenuButtons[i].title.text = TranslationSystem.Request("edit_group");
                        MenuButtons[i].name = "edit_group";
                    }
                }
                else
                {
                    MenuButtons[i].title.text = TranslationSystem.Request("edit_group");
                    MenuButtons[i].name = "edit_group";
                    MenuButtons[i].GetComponent<MenuButton>().menuButton.GetComponent<testButton>().Interactable = false;

                }
            }

            if (MenuButtons[i].name == "edit_crop")
            {
                //Only make crop button interactive when pageobject bitmap is selected 
                MenuButtons[i].GetComponent<MenuButton>().menuButton.GetComponent<testButton>().Interactable = _selection.SelectedPageObject is PageObjectBitmap;
            }

            //TODO Make this work with edit align? It works with other buttons.
            if (MenuButtons[i].name == "edit_align")
            {
               if (!_selection.SelectedPageObject.IsGroup())
               {
                    MenuButtons[i].GetComponent<MenuButton>().menuButton.GetComponent<testButton>().Interactable = false;
               }
               else
               {
                   MenuButtons[i].GetComponent<MenuButton>().menuButton.GetComponent<testButton>().Interactable = true;
               }
            }

Он работает для всего, кроме последней проверки, edit_align (это кнопка с дочерними элементами под ней). Я опубликую ниже общую настройку скрипта создания кнопки, но ПРИМЕЧАНИЕ:Я не могу редактировать эти скрипты, это не мое, поэтому, пожалуйста, не советуйте мне редактировать это.

private static MenuItem _selectionEditMenu = new MenuItem(Resources.Load<Sprite>("Edit_128"))
    { new MenuItem(Resources.Load<Sprite>("Sprites/Icons/Align_Left_1_128"), "edit_align", true, true, null)
        {
            new MenuItem(Resources.Load<Sprite>("Sprites/Icons/Distribute_Horizontally_128"), "edit_align_distribute_evenly"
            new MenuItem(Resources.Load<Sprite>("Sprites/Icons/Uniform_Height_128"), "edit_align_uniform_height"

Я могу достичь edit_align_Distribute_evenly & Uniform height, но родительский элемент выше не называется: edit_align.

ПРИМЕЧАНИЕ. Я оставил здесь синтаксис и т. Д. Причину названий компаний.Так что не беспокойтесь о неправильном синтаксисе.Спасибо, каждая помощь высоко ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...