當前位置:編程學習大全網 - 源碼下載 - 如何在 Unity Editor 中繪制自定義菜單

如何在 Unity Editor 中繪制自定義菜單

using UnityEngine;

using UnityEditor;

using System.Collections;

// This example shows how to create a context menu inside a custom EditorWindow.

// context-click the green area to show the menu

public class GenericMenuExample : EditorWindow

{

[MenuItem("Example/Open Window")]

static void Init()

{

var window = GetWindow<GenericMenuExample>();

window.position = new Rect(50, 50, 250, 60);

window.Show();

}

void Callback(object obj)

{

Debug.Log("Selected: " + obj);

}

void OnGUI()

{

Event currentEvent = Event.current;

Rect contextRect = new Rect(10, 10, 100, 100);

EditorGUI.DrawRect(contextRect, Color.green);

if (currentEvent.type == EventType.ContextClick)

{

Vector2 mousePos = currentEvent.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.ShowAsContext();

currentEvent.Use();

}

}

}

}

using UnityEngine;

using UnityEditor;

using System.Collections;

// This example shows how to create a context menu inside a custom EditorWindow.

// context-click the green area to show the menu

public class GenericMenuExample : EditorWindow

{

[MenuItem("Example/Open Window")]

static void Init()

{

var window = GetWindow<GenericMenuExample>();

window.position = new Rect(50, 50, 250, 60);

window.Show();

}

void Callback(object obj)

{

Debug.Log("Selected: " + obj);

}

void OnGUI()

{

Event currentEvent = Event.current;

RectcontextRect = new Rect(10, 10, 100, 100);

EditorGUI.DrawRect(contextRect, Color.green);

if (currentEvent.type == EventType.ContextClick)

{

Vector2mousePos = currentEvent.mousePosition;

if (contextRect.Contains(mousePos))

{

// Now create the menu, add items and show it

GenericMenumenu = 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.ShowAsContext();

currentEvent.Use();

}

}

}

}

  • 上一篇:Java軟件工程師容易學嗎?
  • 下一篇:Delphi插件創建、調試與使用應用程序擴展
  • copyright 2024編程學習大全網