Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


AppendAction

Adds an item that executes an action in the dropdown menu.
Read time 2 minutesLast updated 5 days ago

Definition

AppendAction(string, Action<DropdownMenuAction>, Func<DropdownMenuAction, Status>, Object)

Adds an item that executes an action in the dropdown menu.
public void AppendAction(string actionName, Action<DropdownMenuAction> action, Func<DropdownMenuAction, DropdownMenuAction.Status> actionStatusCallback, object userData = null)

Parameters

actionName

The name of the item. This name is displayed in the dropdown menu.

The callback to execute when the user selects this item in the menu.

The callback to execute to determine the status of this item.

userData

The object to store in the
userData
property of the DropdownMenuAction item.

Remarks

The item is added to the end of the current item list.

Examples

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("Submenu/My Action 1", a => Debug.Log("My Action 1 Works"), action => { action.tooltip = "Status dependent tooltip"; return DropdownMenuAction.Status.Normal; }, null); })); rootVisualElement.Add(contextMenuContainer); }}

AppendAction(string, Action<DropdownMenuAction>, Status)

Adds an item that executes an action in the dropdown menu.
public void AppendAction(string actionName, Action<DropdownMenuAction> action, DropdownMenuAction.Status status = Status.Normal)

Parameters

actionName

The name of the item. This name is displayed in the dropdown menu.

The callback to execute when the user selects this item in the menu.

status

The status of the item.

Remarks

The item is added to the end of the current item list.

Examples

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); })); rootVisualElement.Add(contextMenuContainer); }}