Страница 1 из 1

Контексное меню в эдиторе над любым элементом

СообщениеДобавлено: 22 сен 2018, 21:12
Cr0c
Синтаксис:
Используется csharp
// Пример использования - проверяет ПКМ по последнему отрисованному элементу
CheckContextMenu(ShowMenu);
 
// Метод проверки меню
    private bool CheckContextMenu(Action menuMethod)
    {
        var w = EditorWindow.mouseOverWindow;
        if (w == null) return false;
        Event current = Event.current;
        if (current.isMouse && current.button == 1)
            if (GUILayoutUtility.GetLastRect().Contains(current.mousePosition))
            {
                menuMethod.Invoke();
                return true;
            }
        return false;
    }
 
// Пример меню
    void ShowMenu()
    {
        GenericMenu menu = new GenericMenu();
        menu.AddDisabledItem(new GUIContent("Actor action menu"));
        menu.AddItem(new GUIContent("Add"), false, AddActorAction);
        menu.AddItem(new GUIContent("Clone"), false, CloneActorAction);
        menu.AddItem(new GUIContent("Delete"), false, DeleteActorAction);
        menu.ShowAsContext();
    }
 
// Пункты меню
    void AddActorAction()
    {}
    void CloneActorAction()
    {}
    void DeleteActorAction()
    {}