将上下文菜单附加到GUI.Window

时间:2016-01-16 04:37:54

标签: c# unity3d

我有一个自定义窗口,里面有多个GUI.Window。我可以为主窗口创建一个上下文菜单。但是当我尝试为GUI.Window创建上下文菜单时,它不起作用。当我右键单击窗口时,它就会开始将其拖动到主窗口周围。

这里有一个存储窗口信息的列表:

// Stores a list of my windows
List<StoryboardWindow> windows = new List<StoryboardWindow>();

然后在这里我循环浏览窗口并调用DrawNodeWindow

// Draws the windows to the screen
void OnGUI() {
    for (int i = 0; i < windows.Count; i++) {
        windows[i].window = GUI.Window(i, windows[i].window, DrawNodeWindow, windows[i].windowTitle);
    }
}

然后我有这个方法为窗口创建GenericMenu,但是当我右键单击窗口时它不起作用。

// Supposed to create the context menu for the window
void DrawNodeWindow(int id) {
    Event currentEvent = Event.current;
    if (currentEvent.type == EventType.ContextClick){
        GenericMenu menu = new GenericMenu();
        menu.AddItem(new GUIContent("Remove"), false, RemoveDialogWindow, id);
        menu.ShowAsContext();
        currentEvent.Use();
    }
    GUI.DragWindow();
}

这是存储信息的类:

// Data for each window
public class StoryboardWindow {
    public enum WindowType { CharacterDialog, CharactersDialog }
    public WindowType windowType;
    public string windowTitle;
    public Rect window;
}

那么,我必须以不同的方式做到这一点吗?我甚至可以这样做吗?我做错了什么?

以下是截图:

Preview

0 个答案:

没有答案