Unity 6.3
0 онлайн 76 гостей 3 в системе
Вход

DropdownMenu.InsertAction

Declaration

public void InsertAction(int atIndex, string actionName, Action<DropdownMenuAction> action, Func<DropdownMenuAction,Status> actionStatusCallback, object userData);

Параметры

Параметр Описание
atIndex Индекс для вставки элемента.
actionName Имя элемента. Это имя отображается в раскрывающемся меню.
действия Обратный вызов, выполняемый при выборе пользователем этого пункта в меню.
actionStatusCallback Обратный вызов, который будет выполнен для определения состояния элемента.
userData Объект для хранения в свойстве userData элемента DropdownMenuAction. Этот объект доступен через обратный вызов действия.

Описание

Добавление элемента, который выполняет действие в раскрывающемся меню.

Элемент добавляется в конец указанного индекса в списке.

using UnityEditor;
using UnityEngine;
using UnityEngine.UIElements;

public class ContextMenuWindow : EditorWindow { [MenuItem("My/Context Menu Window")] static void ShowMe() => GetWindow<ContextMenuWindow>();

void CreateGUI() { var contextMenuContainer = new VisualElement(); contextMenuContainer.style.flexGrow = 1; contextMenuContainer.AddManipulator(new ContextualMenuManipulator(e => { e.menu.AppendAction("My Action 1", a => Debug.Log("My Action 1 Works"), DropdownMenuAction.Status.Normal); // 0 e.menu.AppendAction("My Action 3", a => Debug.Log("My Action 3 Works"), DropdownMenuAction.Status.Normal); // 1 e.menu.AppendAction("Submenu/My Action 4", a => Debug.Log("My Action 4 Works"), DropdownMenuAction.Status.Normal); // 2 e.menu.AppendAction("Submenu/My Action 6", a => Debug.Log("My Action 6 Works"), DropdownMenuAction.Status.Normal); // 3

// Indices from 1 to 3 are shifted up index by 1. In result 'My Action 2' now has an index of 2. e.menu.InsertAction(1, "My Action 2", a => Debug.Log("My Action 2 Works"), DropdownMenuAction.AlwaysEnabled);

// If we want to insert an between submenu items, we have to use shifted indices e.menu.InsertAction(4, "Submenu/My Action 5", a => Debug.Log("My Action 5 Works"), DropdownMenuAction.AlwaysDisabled); }));

rootVisualElement.Add(contextMenuContainer); } }

Declaration

public void InsertAction(int atIndex, string actionName, Action<DropdownMenuAction> action, UIElements.DropdownMenuAction.Status status);

Параметры

Параметр Описание
atIndex Индекс для вставки элемента.
actionName Имя элемента. Это имя отображается в раскрывающемся меню.
действия Обратный вызов, выполняемый при выборе пользователем этого пункта в меню.
статус Статус пункта.

Описание

Добавление элемента, который выполняет действие в раскрывающемся меню.

Элемент добавляется в конец указанного индекса в списке.

using UnityEditor;
using UnityEngine;
using UnityEngine.UIElements;

public class ContextMenuWindow : EditorWindow { [MenuItem("My/Context Menu Window")] static void ShowMe() => GetWindow<ContextMenuWindow>();

void CreateGUI() { var contextMenuContainer = new VisualElement(); contextMenuContainer.style.flexGrow = 1; contextMenuContainer.AddManipulator(new ContextualMenuManipulator(e => { e.menu.AppendAction("My Action 1", a => Debug.Log("My Action 1 Works"), DropdownMenuAction.Status.Normal); // 0 e.menu.AppendAction("My Action 3", a => Debug.Log("My Action 3 Works"), DropdownMenuAction.Status.Normal); // 1 e.menu.AppendAction("Submenu/My Action 4", a => Debug.Log("My Action 4 Works"), DropdownMenuAction.Status.Normal); // 2 e.menu.AppendAction("Submenu/My Action 6", a => Debug.Log("My Action 6 Works"), DropdownMenuAction.Status.Normal); // 3

// Indices from 1 to 3 are shifted up index by 1. In result 'My Action 2' now has an index of 2. e.menu.InsertAction(1, "My Action 2", a => Debug.Log("My Action 2 Works"), DropdownMenuAction.Status.Normal);

// If we want to insert an between submenu items, we have to use shifted indices e.menu.InsertAction(4, "Submenu/My Action 5", a => Debug.Log("My Action 5 Works"), DropdownMenuAction.Status.Disabled); }));

rootVisualElement.Add(contextMenuContainer); } }