Как я могу построить три кнопки, соприкасающиеся горизонтально в Unity GUI - PullRequest
1 голос
/ 17 марта 2020

enter image description here

Я пытаюсь создать собственное окно EditorWindow в Unity и хочу получить эффект, подобный изображенному на рисунке, с кнопками, действующими как вкладки.

Я пытался расположить кнопки горизонтально и между ними были пробелы, но это не тот эффект, который мне нужен. Ниже мой код.

        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();

        if (GUILayout.Button("Heightmap")) { }
        GUILayout.Space(-10);
        if (GUILayout.Button("Vegetation")) { }
        GUILayout.Space(-10);
        if (GUILayout.Button("Details")){ }

        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

1 Ответ

2 голосов
/ 17 марта 2020

Использование GUILayout.Toolbar:

using UnityEngine;
using UnityEditor;

public class MyWindow : EditorWindow
{
    int toolbarInt = 0;
    string[] toolbarStrings = {"Heightmap", "Vegetation", "Details"};

    // Add menu named "My Window" to the Window menu
    [MenuItem("Window/My Window")]
    static void Init()
    {
        // Get existing open window or if none, make a new one:
        MyWindow window = (MyWindow)EditorWindow.GetWindow(typeof(MyWindow));
        window.Show();
    }

    void OnGUI()
    {
        toolbarInt = GUILayout.Toolbar(toolbarInt, toolbarStrings);

        switch (toolbarInt)
        {
            case 0:
            GUILayout.Button("Content for Heightmap");
            break;

            case 1:
            GUILayout.Button("Content for Vegetation");
            break;

            case 2:
            GUILayout.Button("Button for Details");
            break;
        }
    }
}
...