Рисование нескольких BeginArea внутри BeginScrollview (GUILayout) приводит к неожиданному поведению - PullRequest
0 голосов
/ 26 апреля 2019

Что ж, у меня есть вопрос с GUILayout.BeginArea в BeginScrollview.

        if (m_searchedItems?.Length > 0)
        {
            m_scroll = GlobalGUI.BeginScrollView(f_isEditor, m_scroll, viewSize);

            for (int y = 0; y < rows; ++y)
            {
                GUILayout.BeginHorizontal();

                for (int x = 0; x < columns; ++x)
                {
                    // Show items thumbnails...

                    var tTexture = GetThumbnail(item);

                    Rect? texRect = null;

                    if (tTexture != null) // Check if the texture is available or it's being requested
                        texRect = GlobalGUILayout.DrawTexture(tWidth, tHeight, tTexture);

                    // The method from above returns an Nullable<Rect> of the texture. (https://i.imgur.com/pizrwji.png)
                    if (texRect.HasValue)
                    {
                        // Show title w/ marquee
                        // .... Code ....

                        var btnsRect = new Rect(texRect.Value.position + Vector2.up * (tHeight - 26), new Vector2(texRect.Value.width, 21));

                        // Show buttons
                        GUILayout.BeginArea(btnsRect, "aaaaa"); // "aaaaa" string is for a test
                        {
                            GUILayout.BeginHorizontal();

                            if (GUILayout.Button(m_infoTexture, GUILayout.Width(21)))
                                GetInfo(item);

                            if (GUILayout.Button("Install"))
                                DoInstall(item);

                            GUILayout.EndHorizontal();
                        }
                        GUILayout.EndArea();
                    }
                }

                GUILayout.EndHorizontal();
            }

            GlobalGUI.EndScrollView(f_isEditor);
        }

Как видите, я пытаюсь показать список элементов в пределах указанного BeginScrollview:

...

Конечнокаждая из них должна иметь две кнопки для выполнения действий (строка 30 кода).

Но, как вы можете видеть, на изображении, которое я прикрепил, я выделил синюю строку теста «aaaaa», чтобы вы могливижу, что он очень выделен, что дает мне понять, что все объекты BeginArea рисуются в одной и той же позиции.

Но меня больше всего беспокоит то, что кнопки не отображаются.

Однако, если все это реализовано с помощью класса GUI, то вместо класса GUILayout этого не происходит.

В чем может быть проблема?

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