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

Объявление

public void AddItem(GUIContent content, bool on, GenericMenu.MenuFunction func);

Параметры

content GUIContent для добавления в качестве пункта меню.
on Указывает, показывать ли элемент в данный момент активированным (т. е. галочка рядом с элементом в меню).
func Функция, вызываемая при выборе пункта меню.

Описание

Добавить элемент в меню.

Смотрите так же: GenericMenu.AddDisabledItem, GenericMenu.AddSeparator.


Объявление

public void AddItem(GUIContent content, bool on, GenericMenu.MenuFunction2 func, object userData);

Параметры

content GUIContent для добавления в качестве пункта меню.
on Указывает, показывать ли элемент в данный момент активированным (т. е. галочка рядом с элементом в меню).
func Функция, вызываемая при выборе пункта меню.
userData Данные для передачи в функцию, вызываемую при выборе элемента.

Описание

Добавить элемент в меню.

Смотрите так же: GenericMenu.AddDisabledItem, GenericMenu.AddSeparator.

// В этом примере показано, как создать контекстное меню внутри пользовательского окна EditorWindow. using UnityEngine; using UnityEditor; public class MyWindow : EditorWindow { [MenuItem("TestContextMenu/Open Window")] public static void Init() { var window = GetWindow(typeof(MyWindow)); window.position = new Rect(50, 50, 250, 60); window.Show(); } public void Callback(object obj) { Debug.Log("Selected: " + obj); } public void OnGUI() { Event evt = Event.current; Rect contextRect = new Rect(10, 10, 100, 100); if (evt.type == EventType.ContextClick) { Vector2 mousePos = evt.mousePosition; if (contextRect.Contains(mousePos)) { // Now create the menu, add items and show it GenericMenu menu = new GenericMenu(); menu.AddItem(new GUIContent("MenuItem1"), false, Callback, "item 1"); menu.AddItem(new GUIContent("MenuItem2"), false, Callback, "item 2"); menu.AddSeparator(""); menu.AddItem(new GUIContent("SubMenu/MenuItem3"), false, Callback, "item 3"); menu.AddItem(new GUIContent("SubMenu/MenuItem4"), false, Callback, "item 4"); menu.AddItem(new GUIContent("SubMenu/MenuItem5"), false, Callback, "item 5"); menu.AddSeparator("SubMenu/"); menu.AddItem(new GUIContent("SubMenu/MenuItem6"), false, Callback, "item 6"); menu.ShowAsContext(); evt.Use(); } } } } // В этом примере показано, как создать контекстное меню внутри пользовательского окна EditorWindow. using UnityEngine; using UnityEditor; public class MyWindow : EditorWindow { [MenuItem("TestContextMenu/Open Window")] public static void Init() { var window = GetWindow(typeof(MyWindow)); window.position = new Rect(50, 50, 250, 60); window.Show(); } bool item2enabled = false; public void Toggle() { item2enabled = !item2enabled; Debug.Log("item2enabled: " + item2enabled); } public void Item2Callback() { Debug.Log("Item 2 Selected"); } public void OnGUI() { Event evt = Event.current; Rect contextRect = new Rect(10, 10, 100, 100); if (evt.type == EventType.ContextClick) { Vector2 mousePos = evt.mousePosition; if (contextRect.Contains(mousePos)) { // Now create the menu, add items and show it GenericMenu menu = new GenericMenu(); menu.AddItem(new GUIContent("Toggle item 2"), item2enabled, Toggle); if (item2enabled) { menu.AddItem(new GUIContent("Item 2"), false, Item2Callback); } else { menu.AddDisabledItem(new GUIContent("Item 2")); } menu.ShowAsContext(); evt.Use(); } } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3