Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

GenericMenu

класс в UnityEditor

Описание

GenericMenu позволяет создавать собственные контекстные и раскрывающиеся меню.

В приведенном ниже примере открывается окно редактора с кнопкой. При нажатии на кнопку отображается контекстное меню, позволяющее изменить цвет, применяемый к графическому интерфейсу в окне. Скопируйте содержимое примера в скрипт с именем GenericMenuExample.cs и поместите его в папку вашего проекта под названием Editor.

using UnityEngine; using UnityEditor;

public class GenericMenuExample : EditorWindow { // open the window from the menu item Example -> GUIColor [MenuItem("Example/GUIColor")] static void Init() { EditorWindow window = GetWindow(); window.position = new Rect(50f, 50f, 200f, 24f); window.Show(); }

// serialize field on window so its value will be saved when Unity recompiles [SerializeField] Color m_Color = Color.white;

void OnEnable() { titleContent = new GUIContent("GUIColor"); }

// a method to simplify adding menu items void AddMenuItemForColor(GenericMenu menu, string menuPath, Color color) { // the menu item is marked as selected if it matches the current value of m_Color menu.AddItem(new GUIContent(menuPath), m_Color.Equals(color), OnColorSelected, color); }

// the GenericMenu.MenuFunction2 event handler for when a menu item is selected void OnColorSelected(object color) { m_Color = (Color)color; }

void OnGUI() { // set the GUI to use the color stored in m_Color GUI.color = m_Color;

// display the GenericMenu when pressing a button if (GUILayout.Button("Select GUIColor")) { // create the menu and add items to it GenericMenu menu = new GenericMenu();

// forward slashes nest menu items under submenus AddMenuItemForColor(menu, "RGB/Red", Color.red); AddMenuItemForColor(menu, "RGB/Green", Color.green); AddMenuItemForColor(menu, "RGB/Blue", Color.blue);

// an empty string will create a separator at the top level menu.AddSeparator("");

AddMenuItemForColor(menu, "CMYK/Cyan", Color.cyan); AddMenuItemForColor(menu, "CMYK/Yellow", Color.yellow); AddMenuItemForColor(menu, "CMYK/Magenta", Color.magenta); // a trailing slash will nest a separator in a submenu menu.AddSeparator("CMYK/"); AddMenuItemForColor(menu, "CMYK/Black", Color.black);

menu.AddSeparator("");

AddMenuItemForColor(menu, "White", Color.white);

// display the menu menu.ShowAsContext(); } } }

Свойства

allowDuplicateNames Разрешить меню иметь несколько пунктов с одинаковым названием.

Публичные Методы

AddDisabledItem Добавить отключенный элемент в меню.
AddItem Добавить элемент в меню.
AddSeparator Добавить элемент-разделитель в меню.
DropDown Показать меню в заданной области экрана.
GetItemCount Получить количество элементов в меню.
ShowAsContext Показывать меню под мышью при щелчке правой кнопкой мыши.

Делегаты

MenuFunction Функция обратного вызова, вызываемая при выборе пункта меню.
MenuFunction2 Функция обратного вызова с пользовательскими данными, вызываемая при выборе пункта меню.
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3